2.4 Redis原理知识点集锦

字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。
高级数据结构
HyperLogLog:基数统计
GEO:地理位置
PUB/SUB:订阅发布
2、Redis是单进程单线程的吗?
是的。Redis是基于内存的单进程单线程KV数据库,基于C语言编写,不比单进程多线程的Memcached差。快的原因:
(1)完全基于内存。(2)数据结构简单、对数据的操作也简单。
(3)使用多路复用I/O模型(多个网络连接复用同一个线程)。利用select、poll、epoll同时观察多个网络流。Redis实现了一个轻量级的对select、poll、epoll进行调用的通用接口,linux下默认实现为epoll。
3、 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
keys + 正则表达式。会阻塞服务器
scan  模糊查询。不会阻塞服务器
4、如果有大量的key需要设置同一时间过期,一般需要注意什么?
key过期时间太集中会导致系统在那个时间卡顿,因此一般在时间上加一个随机值,使其分散。
5、Redis如何做持久化?
(1)bgsave做镜像全量持久化,耗时长,停机时会导致大量数据丢失,因此要配合aof。fork & cow。redis通过fork创建子进程来进行bgsave操作,父子进程共享数据段,父进程继续提供读写服务,写脏的页面逐渐和子进程分离开来。
(2)aof做增量持久化,与磁盘的同步取决于sync属性的配置,可以写一条同步一次。
6、Redis的同步机制?
主从刚连接时做全量同步,在全量同步后开始做增量同步。
全量同步:在连接后,从服务器发出同步请求,主服务器执行BGSave生成快照,将快照发送给从服务器,同时将这段时间执行的指令缓存起来,从服务器接收快照后,丢弃所有旧数据,载入快照,主服务器将缓冲区的命令发送给从服务器执行。
增量同步:主服务器执行的命令都会发送给从服务器执行。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值