redis小结

redis小结,第1张

redis小结

基本数据类型:string,list,hash,set,zset

exec 提交所有事务(如果返回NULL,则代表事务提交失败)
discard 撤销所有未提交事务
Multi 命令用于标记一个事务块的开始
watch 会在事务开始之前盯住一个或多个关键变量,当事务执行时,也就是服务器收到了exec指令要顺序执行缓存的队列时,
redis会检查关键变量自watch之后是否被修改了。如果关键变量被人动了,exec就会返回null回复告知客户端事务执行失败,
这个时候客户端一般选择重试。
(watch放在multi的前面)

pubsub消息多播模块

内存回收机制:
redis是以页为单位回收的,如果还有一个key都不会回收,但是空闲会分给新来的。
jemalloc

redis集群:
主从同步
redis的复制内存buffer是一个环数组,记录修改指令,满了会覆盖。
增量同步:主节点异步将buffer中的指令同步到从节点,从节点一边执行同步的指令流来达到和主节点一样的状态,一边向主
节点反馈同步到哪里了。
快照同步:将内存的数据全部快照到磁盘文件中,然后再将快照文件的内容全部传送到从节点。
无盘复制:主服务器通过套接字将快照内容发送到从节点,生成快照是一个遍历的过程,主节点会一边遍历内存,一边将序列化
的内容发送到从节点,从节点还是跟之前一样,先将接受到的内容存储到磁盘文件中,再进行一次性加载。
wait将异步复制变成同步复制。
wait提供2个参数一个是从节点数量N,一个是时间t(毫秒),等待wait之前的所有写 *** 作同步到N个从节点,最多等待时间t,
如果t=0代表无限等待。

sentinel 集群主节点挂了,选一个最新的代替。
codis分发服务。(将key通过hash得到一个值放到槽位里,codis可以设置1024个槽位,每个槽位都有对应的redis实例)
unlink 对删除 *** 作进行懒惰处理。

stream 消息队列
info redis的运行状态‘’
分布式锁redlock没看懂

过期key惰性处理
定时扫描,随机选20个,删除过期的,如果过期的超过1/4,重复 *** 作。(循环过多容易出问题)


淘汰策略:
内存满了,不再写入
淘汰设置了过期时间的key,最少使用的被淘汰。
淘汰设置了过期时间的key,剩余时间最少的淘汰。
淘汰设置了过期时间的key,随机删除一部分。
全部key,最近最少使用的被淘汰。
全部key,随机删除一部分。


flushdb:清楚当前数据库所有的key


 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4658617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存