当前位置:   article > 正文

Redis基础_redis sessioncallback

redis sessioncallback
1 springboot使用redis
1 在mevan中导入redis的启动器并不依赖Redis的异步客服端lettuce
2 引入redis的客服端驱动jedis
3 在application.properties进行相关的配置(连接池属性,服务器属性)
4 使用RedisTemplate进行操作
  • 1
  • 2
  • 3
  • 4
2 spring提供的序列化
1 默认的序列化器:JdkSerializationRedisSerializer(当使用这个序列化器的时候,在客服端查看的时候是无规则字符)
2 字符串序列化器:StringRedisSerializer(使用这个序列化器的时候,在客服端查看的时候是可读字符串)
  • 1
  • 2
3 spring对Redis数据类型操作的封装

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()

SessionCallback和RedisCallback接口使得在同一个redis连接下,可以执行多个redis命令
1 推荐使用SessionCallback高级接口,比较友好。
2 RedisCallback接口并不是那么友好,但是可以改写一些底层的东西,如序列化问题。所以不打算改写底层的时候不使用这个接口。
3 如果实在java8以上可以使用lamdba表达式来使用这些接口
  • 1
  • 2
  • 3
Redis服务器使用默认序列化器存储的是序列化的,不便于跟踪。在springboot中,当Redis只是使用字符串可以直接使用StringRedisTemplate,但是这样就不能支持对象的存储,因此可以Springboot的启动类中修改RedisTemplate的序列化器。即可实现对对象的存储。
注意使用默认序列化器存入的字符串是被序列化为二进制的所以不能使用Redis命令进行序列化的。
RedisTemplate并不能支持底层所有的Redis命令。所以需要获取原始的Redis连接的Jedis对象,再来进行相应操作比如(减一操作)。
spring提供了TypedTuple接口操作Redis 的zset,有两个方法getValue()和getScore().并提供了默认实现类DefaultTypedTuple。
Redis事务

watch multi exec 三个命令组成,也就是要在一个Redis连接中执行多个命令,考虑使用SessionCallback。
operations.watch(“key1”)//监控一个一些键
operations.multi()//开始事务,此后客服端的命令不能马上执行,而是放在队列上的,因此在exec之前是没有数据的
operations.exec()//只要watch中的键数据没有发生过变化,就执行(及时出现了异常,这也是与关系数据库不同的一点)。否则不执行。

Redis流水线

默认情况Redis是一条条数据发送给服务器的。
关系数据库中我们可以使用批量,只有需要执行sql时在批量发送。
Redis也是可以的,这便是流水线(pipline)技术。
List list=(List)redisTemplate.executePipelined(SessionCallback的lamdba表达式);
对于程序而言最终都会还回一个List对象,所以需要考虑内存消耗的问题。造成JVM内存溢出。这个时候应该使用迭代的方式执行Redis命令。
与实务一样,在使用流水线的过程中,所有命令只是进入队列而没有执行。

Redis发布订阅

创建Redis消息监听器,需要实现MessageListener接口
配置Springboot 的启动文件,让系统能够监听Redis的消息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/318428
推荐阅读
相关标签
  

闽ICP备14008679号