<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<constructor-arg>
<bean class="org.springframework.data.redis.connection.RedisStandaloneConfiguration"
c:host-name="IP" c:port="6379"/>
constructor-arg>
bean>
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="minIdle" value="5"/>
<property name="maxIdle" value="100"/>
<property name="maxTotal" value="300"/>
<property name="maxWaitMillis" value="3000"/>
<property name="testOnBorrow" value="true"/>
bean>
<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
<property name="keySerializer" ref="stringRedisSerializer"/>
<property name="valueSerializer" ref="stringRedisSerializer"/>
<property name="hashKeySerializer" ref="stringRedisSerializer"/>
<property name="hashValueSerializer" ref="stringRedisSerializer"/>
bean>
在需要使用redis类上注入RedisTemplate
@Autowired
private RedisTemplate<String, String> redisCache;
第一个string代表key类型,第二个string代表value类型,redis是key、value形式的,所以第二个string可以改为object,根据需求注入
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
操作字符串
使用:redisTemplate.opsForValue().set("name","tom");
结果:redisTemplate.opsForValue().get("name") 输出结果为tom
redisTemplate.opsForValue().set("name","tom",10, TimeUnit.SECONDS);
结果:redisTemplate.opsForValue().get("name")由于设置的是10秒失效,十秒之内查询有结果,十秒之后返回为null
操作List
使用:redisTemplate.opsForList().leftPush("list","java");
redisTemplate.opsForList().leftPush("list","python");
redisTemplate.opsForList().leftPush("list","c++");
结果:返回的结果为推送操作后的列表的长度
1
2
3
操作Hash
使用:redisTemplate.opsForHash().put("redisHash","name","tom");
redisTemplate.opsForHash().put("redisHash","age",26);
redisTemplate.opsForHash().put("redisHash","class","6");
System.out.println(redisTemplate.opsForHash().entries("redisHash"));
结果:{age=26, class="6", name=tom}
操作Set
使用:System.out.println(template.opsForSet().members("setTest"));
System.out.println(template.opsForSet().members("setTest2"));
System.out.println(template.opsForSet().intersect("setTest","setTest2"));
结果:[aaa, ccc]
[aaa]
[aaa]
操作Zet
使用:System.out.println(template.opsForZSet().range("zset1",0,-1));
System.out.println(template.opsForZSet().remove("zset1","zset-6"));
System.out.println(template.opsForZSet().range("zset1",0,-1));
结果:[zset-1, zset-2, zset-3, zset-4, zset-5, zset-6]
[zset-1, zset-2, zset-3, zset-4, zset-5]