博客园  :: 首页  :: 新随笔  :: 管理

主从复制高可用Redis集群

Posted on 2022-05-01 22:39  揽星河、入梦  阅读(31)  评论(0)    收藏  举报

NoSql介绍

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

redis和memcached有啥区别

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

Redis的命令客户端

image

Redis数据类型

数据类型——string

image
image

数据类型——hash

image
image

数据类型——list

image

数据类型——set

数据类型——zset

image

详细操作见文档:http://redisdoc.com/

Redis模型原理

image

Redis发布与订阅

image
image

Redis持久化

  1. RDB
    image
    image
    image
    image
  2. AOF
    image
    image
    image
    image

Redis主从复制原理解析(读写分离)

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

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

image
image

哨兵机制与实现

image
image
image
image
image
image

Redis集群

三主三从
image
image
image
image
image

Redis缓存雪崩、穿透

  1. 雪崩
    image
    image
  2. 穿透
    image
    设置一个UNKNOWN或者[]等,给一个默认时间,防止重复穿透到数据库
  3. 解决穿透——布隆过滤器
    image
    image
  4. multiGet批量查询优化
    image
  5. pipeline批量查询优化
    image

Redis缓存CAP定理(保证双写一致性)

image