NoSql介绍
NoSQL(Not Only SQL)指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,用于超大规模数据的存储。

redis和memcached有啥区别
- Redis支持服务器端的数据操作
Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。 - 内存使用效率对比
使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。 - 性能对比
由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。 - 集群模式
memcached没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据;但是redis目前是原生支持cluster模式的,redis官方就是支持redis cluster集群模式的,比memcached来说要更好 - 持久化
redis具有RDB和AOF两种持久化机制。
Redis的命令客户端

Redis数据类型
数据类型——string


数据类型——hash


数据类型——list

数据类型——set
数据类型——zset

详细操作见文档:http://redisdoc.com/
Redis模型原理

Redis发布与订阅


Redis持久化
- RDB
![image]()
![image]()
![image]()
![image]()
- AOF
![image]()
![image]()
![image]()
![image]()
Redis主从复制原理解析(读写分离)
disk复制

通过socket无磁盘化复制
更改配置 repl-diskless-sync yes

Redis缓存过期处理及内存淘汰机制


哨兵机制与实现






Redis集群
三主三从





Redis缓存雪崩、穿透
- 雪崩
![image]()
![image]()
- 穿透
![image]()
设置一个UNKNOWN或者[]等,给一个默认时间,防止重复穿透到数据库 - 解决穿透——布隆过滤器
![image]()
![image]()
- multiGet批量查询优化
![image]()
- pipeline批量查询优化
![image]()
Redis缓存CAP定理(保证双写一致性)
















浙公网安备 33010602011771号