上海品牌网站开发,设计平台市场分析,金华市建设局网站职称,wordpress4.0下载1. Redis客户端
Jedis 以redis命令作为方法名称#xff0c;学习成本低#xff0c;但是Jedis实例是线程不安全的#xff0c;多线程环境下需要基于连接池来使用#xff08;必须为每个线程分配独立的Jedis连接#xff09; lettuce 基于Netty实现#xff0c;支持同步、异步和…1. Redis客户端
Jedis 以redis命令作为方法名称学习成本低但是Jedis实例是线程不安全的多线程环境下需要基于连接池来使用必须为每个线程分配独立的Jedis连接 lettuce 基于Netty实现支持同步、异步和响应式编程方式并且是线程安全的。支持Redis的哨兵模式、集群模式和管道模式 Redisson 是一个基于Redis实现的分布式、可伸缩的Java数据结构集合。包含了诸如Map、Queue、Lock、Semaphore、AtomicLong等强大功能
1.1 Jedis
使用步骤
引入依赖建立连接使用jedis释放资源
1.2 Jedis连接池
jedis本身不是线程安全的并且频繁的创建和销毁连接有性能损耗因此推荐使用Jedis连接池代替Jedis的直连方式
2. SpringDataRedis
在Spring中可以通过注入RedisTemplate的方式底层连接可以选择jedis、lettuce来使用redis需要在配置文件中配置redis信息
jedis所使用的方法名多数与redis调用保持一致redisTemplate则是对redis调用进行了封装
redisTemplate方法名
opsForValue操作String类型opsForHash操作Hash类型opsForList操作List类型opsForSet操作Set类型opsForZSet操作SortedSet类型
2.1 RedisTemplate序列化方案
RedisTemplate可以接受任意的Object作为键、值写入redis但是会在写入前将Object序列化为字节形式默认采用JDK序列化可读性差且内存占用较大可以通过设置redis序列化器的方式来避免使用JDK序列化
方案一
自定义RedisTemplate修改RedisTemplate的序列化器为GenericJackson2JsonRedisSerializer
方案二
使用StringRedisTemplate写入Redis时手动将对象序列化为JsonObjectMapper读取Redis时手动将读取到的Json反序列化为对象