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);
}