大数据下Redis的应用
1、Redis客户端区别
1.1 redis常用客户端
目前市面上比较流行的客户端有jedis、lettuce、redisson
•jedis
jedis客户端连接方式是基于TCP阻塞方式
•lettuce
lettuce内部是基于netty的多路复用异步非阻塞方式(目前业界解决高并发大数据的问题的思路)
•redisson
相对于上面两种使用得较少
在并发数量不大的情况下,两者性能可能差不多,jedis的性能可能还优于lettuce,但当并发量的提升,jedis的超时错误会增加,但lettuce只是平均响应时间增加和最大响应时间会增加,lettuce是已稳定性为主的
1.2 epoll模型-单线程的redis为什么快
redis内部使用epoll模型来提高链接处理能力
传统TCP链接与epoll模型的本质区别
•TCP链接存在链接数瓶颈,随着连接数的增加,响应速度会明显变慢
•epoll可支持更大数量的连接数而不会对性能有明显的影响
2、大数据下的redis的存储方案
2.1 分片模式
分片模式是把部署多个redis节点,然后由客户端决定数据分片规则,常见的分片规则就是以节点数量进行哈希分片
优点:
•服务端不需要进行繁琐的配置,由客户端决定路由规则
缺点:
•缺点很明显,如果多个节点中的某个节点挂了,将丢失这一部分数据,因为客户端还是为每个节点分配了连接,而且客户端配置分片节点IP的时候要注意
•IP列表的顺序不能随意指定顺序,IP变更也会影响数据,扩容相当麻烦。
建议:如果分片节点较少可以使用分片来适当的分摊压力
配置示例:
spring:
remote:
ecredis:
type: sharding
uri:
- 192.168.1.3:6379
- 192.168.1.4:6379
- 192.168.1.5:6379
- 192.168.1.6:6379
- 192.168.1.7:6379
db: 1
maxIdle: 10
minIdle: 5
maxActive: 10
password: GpG4fZoxsp7cTB5f
keyPrefix: 'ERP:EXPORT-CENTER:'
2.2 哨兵机制
在Redis 2.8版本开始引入,就有了哨兵这个概念,哨兵实现了自动化的故障恢复,无需关心IP是否变更。
优点:
•哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有。
•主从可以自动切换,系统更健壮,可用性更高。