1、redis: Remote dictionary server
支持的基本类型:String、List、Set、Sorted Set、hashes
2、淘汰策略:
1)noeviction --返回错误的内存限制达到并且客户端尝试执行更多内存被使用的命令
2)allkeys-lru -- 尝试回收最少使用的键
3)volatile-lru -- 尝试回收最少使用的键,但仅限于在过期集合的键
4)allkey-random --回收随机的键
5)volatile-random --回收随机键,但仅限于在过期集合的键
6)volatile-ttl --回收在过期集合的键,并且优先回收存活时间(ttl)较短的键
3、redis适合场景:
1)会话缓存(Session Cache)
2)全页缓存(FPC)
3)队列
4)排行榜/计数器
5)发布/订阅
4、redis哈希槽概念:
redis集群没有一致性的hash,而是映入了哈希槽的概念,有16384个哈希槽,而每个key是通过CRC16校验后对16384来取模决定放置的哪个槽,集群的每一个节点都负责一部分的hash槽
5、redis集群是不能保证数据的强一致性的,意味着在一定的条件下是有可能丢失写操作的
6、redis集群之间是异步复制的,集群是使用主从复制模型,每个节点都会有N-1个复制品,所以在部分节点失败或者大部分节点无法通讯的情况下集群是仍然可用的
7、考虑redis的内存优化,尽可能的使用散列表(hashes),散列表使用的内存非常的小,所以尽可能的将数据抽象到一个散列表里边
8、redis相关命令:事务--MULTL、EXEC、DISCARD、WATCH;过期时间-EXPIRE,永久有效-PERSIST;设置密码-config set requirepass 123456,设置验证码-auth 123456