SSM整合(三)

news2024/11/23 20:41:47

redis之简单使用

1.准备工作

1.1 在resource资源文件夹下面创建redis.properties文件,并填写如下内容

#连接端口
redis.port=6379
#连接地址
redis.host=127.0.0.1
#超时时间:单位ms
redis.timeout=3000
#授权密码
redis.password=
#最大连接数:能够同时建立的“最大链接个数”
redis.maxTotal=200
#最大空闲数:空闲链接数大于maxIdle时,将进行回收
redis.maxIdle=20
#最小空闲数:低于minIdle时,将创建新的链接
redis.minIdle=5
#最大等待时间:单位ms
redis.maxWait=3000
#使用连接时,检测连接是否成功
redis.testOnBorrow=true

1.2 在spring-db.xml中引入redis.properties

<context:property-placeholder location="classpath:/jdbc.properties,redis.properties"></context:property-placeholder>

1.3 创建spring-redis.xml文件,并填写如下内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">
    <!--设置jedisPool链接池的配置-->
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <property name="minIdle" value="${redis.minIdle}"></property>
        <property name="maxWaitMillis" value="${redis.maxWait}"/>
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
    </bean>
    <!--密码对象-->
    <bean id="password" class="org.springframework.data.redis.connection.RedisPassword">
        <constructor-arg name="thePassword" value="${redis.password}"></constructor-arg>
    </bean>

    <!--spring-data-redis2.0以上的配置-->
    <bean id="redisStandaloneConfiguration" class="org.springframework.data.redis.connection.RedisStandaloneConfiguration">
        <property name="hostName" value="${redis.host}"/>
        <property name="port" value="${redis.port}"/>
        <property name="password" ref="password" />
        <property name="database" value="0"/>
    </bean>
    <!-- redis连接 spring-data-redis2.0以上建议获取的方式-->
    <bean id="connectionFactory"
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg name="standaloneConfig" ref="redisStandaloneConfiguration"></constructor-arg>
    </bean>
</beans>

2 创建RedisConfig类

2.1 在RedisConfig前加上@Configuration注解

在这里插入图片描述

2.2 创建redisTemplate方法的结构

@Bean
    public RedisTemplate<String,Object> redisTemplate(JedisConnectionFactory cf){

 }

2.3 redisTemplate方法体里面的逻辑

2.3.1 设置连接对象

 RedisTemplate<String, Object> redis = new RedisTemplate<>();
 redis.setConnectionFactory(cf);

2.3.2 实例化一个String序列化器(存储类型必须是String类型)

StringRedisSerializer string=new StringRedisSerializer();

2.3.3 设置redis的key和value都使用string类型序列化器

  //设置String数据类型和hash数据类型 的key和value 使用哪种序列化器
  redis.setKeySerializer(string);
  redis.setValueSerializer(string);

2.4 完整的RedisConfig类代码

package com.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration//等同于xml文件
public class RedisConfig {
    @Bean
    public RedisTemplate<String,Object> redisTemplate(JedisConnectionFactory cf){
        RedisTemplate<String, Object> redis = new RedisTemplate<>();
//        设置连接对象
        redis.setConnectionFactory(cf);
        StringRedisSerializer string=new StringRedisSerializer();
        redis.setKeySerializer(string);
        redis.setValueSerializer(string);
        return redis;
    }
}

2.5 测试

2.5.1 当要存放进去的数据是集合时

a 测试代码
 @Test
    public void 存储到redis(){
        List<Emp> emps1 = em.selectAll();
        String s= JSON.toJSONString(emps1);
        //json转集合,用parseArray
        List<Emp> emps = JSON.parseArray(s, Emp.class);
        System.out.println(emps);
        redisTemplate.opsForValue().set("emp:7369",s);
    }
b 测试代码运行截图
b.1 控制台运行截图

在这里插入图片描述

b.2 查看redis值

在这里插入图片描述

2.5.2 当要存放进去的数据是对象时

a 测试代码
 public void 存储到redis(){
        Emp emp = em.selectByPrimaryKey(7369);
        String s= JSON.toJSONString(emp);
        System.out.println(emp);
        redisTemplate.opsForValue().set("emp:7369",s);
    }
b 测试代码运行截图
b.1 控制台运行截图

在这里插入图片描述

b.2 查看redis的值

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GUI编程--PyQt5--QLineEdit

文章目录键盘文本输入框文本占位符密码显示与隐藏自动补全输入限制掩码字符光标移动设置文本区域常用编辑功能输入控件&#xff0c;用于捕获用户的信息键盘文本输入框 QLineEdit, 单行&#xff0c;纯文本输入框 # 实例化 文本输入框 le QLineEdit("默认值", windo…

Material Design之CoordinatorLayout 与AppbarLayout与CollapsingToolbarLayout

Material Design 之 CoordinatorLayout 第一次接触CoordinatorLayout 你可能有这些疑问&#xff0c;CoordinatorLayout 到底是个什么玩意儿呢&#xff1f;它到底能帮我们做什么&#xff1f;我们要了解它&#xff0c;肯定是先看官方文档了。文档的第一句话就非常醒目&#xff1a…

高职网络系统管理比赛实例

同一交换机不同端口配置不同vlan&#xff0c;实现同一交换机内不同业务部门隔离。 在路由器中配置斜面的内容 1 输入enableRuijie>enable 2 第一次使用该交换机时&#xff0c;需要设置密码&#xff0c;然后再次确认密码 Please Set the password:*** Please check the pass…

掌握这10个Pandas函数,助你彻底了解数据集

10个帮助你完全理解数据集的Pandas 函数 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 Pandas是用于探索性数据分析 (EDA)的最佳 Python 模块。 许多初级数据科…

如何在liunx下实现一个简单的程序?

目录&#xff1a;安装nano写代码保存退出查看文件内容生成可执行程序控制台输出你的代码博后小知识&#xff08;gcc -g -o -c分别是什么意思&#xff1f;&#xff09;安装nano [rootVM-8-11-centos ~]# yum install -y nano 写代码 [rootVM-8-11-centos ~]# nano no_die.c 保存…

向量加权平均算法附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

【C++学习第八讲】简单变量(二)

目录&#xff1a;简单变量&#xff08;二&#xff09;一、无符号类型二、选择整型类型三、 char类型&#xff1a;字符和小整数一、无符号类型 前面介绍的4种整型都有一种不能存储负数值的无符号变体&#xff0c;其优点是可以增大变量能够存储的最大值。 例如&#xff0c;如果…

软件测试---

一 : 主要内容 二 : 什么是软件测试 在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行评估的过程.上面这是官话 . 在我们日常生活中 , 就有许多测试的行为 , 比如地铁站的金属检测仪 , 用于检测旅客…

深度学习——损失函数推导过程(三个方面诠释损失函数的由来意义)

三个维度诠释损失函数 我们在学习机器学习的过程中&#xff0c;通常利用损失函数来衡量模型所做出的预测离真实值之间的偏离程度。 损失函数大致分为3类方法 最小二乘法极大似然估计法交叉熵 1.最小二乘法 这个方法是最显而易懂的&#xff0c;假设x是真实值&#xff0c;y是…

【PyTorch】Neural Network 神经网络

文章目录四、Neural Network 神经网络1、Containers - Module2、Convolution Layers - functional.conv2d2.1 stride2.2 padding3、Convolution Layers - Conv2d3.1 in_channels out_channels4、Pooling layers - MaxPool2d4.1 ceil_mode4.2 TensorBoard5、Non-linear Activati…

Eclipse启动SpringBoot无法读取application.properties或者application.yml文件内容

原因 eclipse配置源代码excludes过滤掉了application.properties或application.yml造成的 解决 2.1 右键项目&#xff0c;选Build Path --> Configure Build Path 2.2 找到 Source --> resources --> Excluded&#xff0c;点击Edit 2.3 点击Edit 2.4 将**改成Non…

【Java八股文总结】之多线程

文章目录Java多线程一、线程1、什么是线程&#xff1f;什么是进程&#xff1f;二者的区别1、给线程起别名的3种方式2、this关键字3、守护线程和用户线程4、并发和并行的区别&#xff1f;5、线程间通信的方式2、synchronized关键字补充&#xff1a;snchronized底层实现原理3、vo…

如何用FMEA方法排除架构隐患

FMEA介绍 定义 FMEA&#xff08;Failure mode and effects analysis&#xff0c;故障模式与影响分析&#xff09;又称为失效模式与后果分析、失效模式与效应分析、故障模式与后果分析等&#xff0c;本文采用“故障模式与影响分析” 历史 FMEA 最早是在美国军方开始应用的&a…

2022-11-20-使用BeatuifulSoup进行页面内容的获取

一、什么是DOM树 DOM树是一种结构&#xff0c;树是由DOM元素和属性节点组成的&#xff0c;DOM的本质是把html结构化成js可识别的树模型&#xff0c;有了树模型&#xff0c;就有了层级结构&#xff0c;层级结构是指的是元素和元素之间的关系父子、兄弟。 实例&#xff1a; 标题…

Java语法之多态

上次给大家分享了Java的继承&#xff0c;今天小编给大家分享面向对象三大特性的第三大特性&#xff0c;也就是多态&#xff0c;fighting~~ 目录 &#x1f388;一. 多态 &#x1f388;1.1多态的概念 &#x1f388;1.2多态的实现条件 &#x1f388;1.3向上转型和向下转型 &a…

HDFS 的 shell操作

文章目录前言一、基本语法二、创建目录三、上传moveFromLocal-copyFromLocal-put-appendToFile四、下载-copyToLocal-get五、HDFS直接操作-ls-cat-chgrp、-chmod、-chown-mkdir-cp-mv-tail-rmrm -r-du-setrep前言 HDFS的shell操作很多跟linux的shell语法是比较相近&#xff0c…

Python学习基础笔记八——字典

字典&#xff1a; 1&#xff09;字典中的元素是通过键来存储的&#xff0c;而不是通过偏移来存取的。字典是唯一内置的映射类型&#xff08;键映射到值的对象&#xff09; 2&#xff09;是无序集合&#xff1b; 3&#xff09;字典是作为散列表&#xff08;支持快速检索的数据…

html网页设计期末大作业_网页设计平时作业(诗词网页 4页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 茶文化网站 | 中华传统文化题材 | 京剧文化水墨风书画 | 中国民间年画文化艺术网站 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;…

39-Docker-部署Jenkins

部署Jenkins前言部署Jenkins1. 下载镜像2. 创建挂载目录3. 创建并启动Jenkins容器使用Jenkins1. 访问Jenkins2. 输入密码3. 配置Jenkins前言 本篇来学习使用Jenkins镜像部署Jenkins 部署Jenkins 1. 下载镜像 docker pull jenkins/jenkins2. 创建挂载目录 # 创建挂载目录 m…

Oracle PrimaveraUnifier成本管理器(Cost Manager)简要介绍

目录 一&#xff1a;标准成本管理器(Standad Cost Manager) 二&#xff1a;通用成本管理器(General Cost Manager) 成本管理器(Cost Manager)是Unifier管理和聚焦汇总成本的主要组成部分&#xff0c;财务最关系的Cost Sheet 成本表将通过 成本管理器制定模板 在Oracle Pirma…