总结一下Redis的特性以及Redis分布式的相关知识
1. 单线程
2. 支持对象类型丰富
String
Hash:key对应一个hashmap,类似于Bean的存储
List
Set
Sorted set
pub/sub:发布于订阅,适用于实时消息系统
Transactions:不完全的事务,但在大多数正常情况下,可以保证一连串的命令是顺序在一起执行的(提供了一个Watch功能,你可以对一个key进行Watch,然后再执行Transactions,在这过程中,如果这个Watched的值进行了修改,那么这个Transactions会发现并拒绝执行)
3. 支持持久化:snapshoting(二进制文件中),AOF(增量文件),基于btree的diskstore
4. 有slot(槽)的概念,用于分布式sharding,主要思路:主要是在扩容方面尽可能的做到业务无感知思路就是前端引入Proxy隔离应用层后端改造Redis引入Slot(有些也叫Buket)来分组key。应用层访问时基于算法将key先映射到Slot再映射到具体分片实例大概如下面这样。
参考文章:http://blog.csdn.net/mindfloating/article/details/50458768
Redis分布式
参考:https://yq.aliyun.com/articles/68593?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&utm_content=m_10099
1. redis 4.0 cluster(官方组件)
2. codis(第三方开源),相当于在业务层自己做一个基于一致性hash类似算法的,决定缓存放哪台服务器的,并进行管理(可结合sentinel进行高可用的集群管理)的框架。
3.基于阿里云云生态的阿里云redis