随笔分类 -  redis

redis
摘要:1、查看客户端连接数是不是太多了,如果太多检查下代码是不是忘了关闭连接 2、memory info 查看碎片率,碎片过多需要整理,设置参数自动清理 3、--big-keys 查找大key,该删删(unlink)、该优化优化 4、搞一份rdb文件,用工具分析rdb文件,找大key 阅读全文
posted @ 2022-03-13 22:54 hugeQAQ 阅读(542) 评论(0) 推荐(0) 编辑
摘要:一、什么是哨兵模式? 在redis主从模式下,如果主节点出现故障,需要从从节点中选举一个新的主节点,将其余从节点的主节点改变成新的主节点,同时要通知redis客户端主节点已经更换,等到原主节点恢复,还要将原主节点变成新主节点的从节点,这一系列操作,需要一个自动化的过程,哨兵模式就是自动完成这一系列操 阅读全文
posted @ 2022-03-13 22:28 hugeQAQ 阅读(285) 评论(0) 推荐(0) 编辑
摘要:一、redis的内存消耗到底在哪些地方? 自身内存(redis空进程消耗的内存,只有几M,可以忽略) 对象内存(主要的内存消耗,存储数据对象,包括key、value占的内存) 缓冲区内存(客户端输入缓冲区、服务端输出缓存区、AOF缓冲区) 内存碎片(对象内存不规则导致的内存碎片) 子进程内存消耗(R 阅读全文
posted @ 2022-03-12 16:50 hugeQAQ 阅读(425) 评论(0) 推荐(0) 编辑
摘要:1、为什么需要内存淘汰? redis的数据可以分为两种,一种不带过期时间,另一种带有过期时间,到期自动删除。假如redis的内存占用阈值为M,那么不带过期时间的数据太多或者带过期时间的数据没有及时删除,都可能导致内存溢出。 redis的过期删除策略:a、定期删除:redis会对设置了过期时间的数据定 阅读全文
posted @ 2022-03-10 10:53 hugeQAQ 阅读(154) 评论(0) 推荐(0) 编辑
摘要:1、纯内存访问。redis的所有数据都在内存中,这是快的主要原因 2、非阻塞IO。redis使用epoll作为IO多路复用的实现。 3、单线程避免了线程切换和资源竞争带来的开销。 单线程问题:耗时较长的命令可能导致阻塞 阅读全文
posted @ 2022-02-28 22:47 hugeQAQ 阅读(150) 评论(0) 推荐(0) 编辑
摘要:一、全局命令(生产环境慎用) 查看所有键:keys * 键是否存在:exits key 删除键:del key 设置键过期时间:expire key seconds 键的数据类型:type key 键总数:dbsiz 二、字符串 设置值:set key value [ex seconds] [px 阅读全文
posted @ 2022-02-28 22:39 hugeQAQ 阅读(82) 评论(0) 推荐(0) 编辑
摘要:一、字符串 业务缓存(json字符串等) 计数器 (利用incr的原子性) 共享session(分布式session,key为sessionId,value为内容) 限速(例如一个手机号一分钟内只能获取一次验证码) 二、哈希 缓存map类型的东西(也可以用字符串存json,在语言层来解码) 三、列表 阅读全文
posted @ 2022-02-28 22:03 hugeQAQ 阅读(35) 评论(0) 推荐(0) 编辑
摘要:redis 所有值对象在内部都定义为 redisObject typedef struct redisObject{ //类型 unsigned type:4; //0.5byte //编码 unsigned encoding:4;//0.5byte //指向底层数据结构的指针 void *ptr; 阅读全文
posted @ 2022-02-28 21:49 hugeQAQ 阅读(323) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示