赞
踩
1 在mevan中导入redis的启动器并不依赖Redis的异步客服端lettuce
2 引入redis的客服端驱动jedis
3 在application.properties进行相关的配置(连接池属性,服务器属性)
4 使用RedisTemplate进行操作
1 默认的序列化器:JdkSerializationRedisSerializer(当使用这个序列化器的时候,在客服端查看的时候是无规则字符)
2 字符串序列化器:StringRedisSerializer(使用这个序列化器的时候,在客服端查看的时候是可读字符串)
Redis数据类型操作接口
1 redisTemplate.opsForValue()
2 redisTemplate.opsForHash()
3 redisTemplate.opsForList()
4 redisTemplate.opsForSet()
5 redisTemplate.opsForZset()
例子:redisTemplate.opsForValue().set(“key1”,“test”);
绑定键(对某一键值进行连续操作)的操作类
1 redisTemplate.boundValueOps(“string”)
2 redisTemplate.boundHashOps()
3 redisTemplate.boundListOps()
4 redisTemplate.boundSetOps()
5 redisTemplate.boundZsetOps()
1 推荐使用SessionCallback高级接口,比较友好。
2 RedisCallback接口并不是那么友好,但是可以改写一些底层的东西,如序列化问题。所以不打算改写底层的时候不使用这个接口。
3 如果实在java8以上可以使用lamdba表达式来使用这些接口
watch multi exec 三个命令组成,也就是要在一个Redis连接中执行多个命令,考虑使用SessionCallback。
operations.watch(“key1”)//监控一个一些键
operations.multi()//开始事务,此后客服端的命令不能马上执行,而是放在队列上的,因此在exec之前是没有数据的
operations.exec()//只要watch中的键数据没有发生过变化,就执行(及时出现了异常,这也是与关系数据库不同的一点)。否则不执行。
默认情况Redis是一条条数据发送给服务器的。
关系数据库中我们可以使用批量,只有需要执行sql时在批量发送。
Redis也是可以的,这便是流水线(pipline)技术。
List list=(List)redisTemplate.executePipelined(SessionCallback的lamdba表达式);
对于程序而言最终都会还回一个List对象,所以需要考虑内存消耗的问题。造成JVM内存溢出。这个时候应该使用迭代的方式执行Redis命令。
与实务一样,在使用流水线的过程中,所有命令只是进入队列而没有执行。
创建Redis消息监听器,需要实现MessageListener接口
配置Springboot 的启动文件,让系统能够监听Redis的消息
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。