前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 小结

Redis 小结

原创
作者头像
乐事
修改2020-08-19 10:05:44
3120
修改2020-08-19 10:05:44
举报
文章被收录于专栏:日常笔记日常笔记

redis(redisObject) 对象

type 表示类型比如 列表 字符串 字典等 ptr 实际对象的地址 encoding 实现对应对象的方式 比如列表对象包含少量元素的时候使用压缩列表作为底层实现 当元素变多时使用双端链表

String对象 编码 int embstr raw

List对象 编码 ziplist linkedlist 命令LPUSH RPUSH LPOP RPOP

Hash对象 编码 ziplist hashtable

Set对象 编码 intset hashtable

有序集合对象 ziplist skiplist

命令执行 先判读只对象的类型,再根据具体编码执行命令

redisObject (refcount)应用计数内存管理 lru 最后一次被访问时间

redisServer

db (redisDB)数组 dbnum 数组长度

SELECT 切换数据库

redisClient 对象db记录当前目标数据库

redisDB dict保存所有键值对 expires 保存所有过期字典

redisDB watched_keys 保存watch命令监视端key

过期键删除策略

1 定时删除 内存友好 cpu不友好,存在大量key过期(需要限定数量和时间)

2 惰性删除 内存不友好

redis结合两种策略实现

从服务器不会删除过期键,只会通过主服务器同步删除

saveParam 保存数据保存策略

dirty距上一次save后执行链多少次修改

lastsave上一次save时间

clients 保存所有的客户端

redisClient

fd 套接字

queryBuf 客户端的请求

argv argv[0]是命令其他是参数

argc 解析后的argv长度

cmd 指向对应的指向命令

发布订阅

pubsub_channels 保存所有频道的订阅关系

redis 事件

文件事件

套接字-》IO多路复用程序-》文件事件队列-》事件处理器

时间事件

主从同步

初次同步

部分同步

事务

服务器会一次性执行多个命令,而不会中断去执行其他的命令

MULTI

将客户端切换到事务状态,通过在redisclient中flags属性来完成

EXEC

服务器端会立即执行客户端端事务队列

WATCH

是一个乐观锁,可以在EXEC执行之前监视任何键,在执行EXEC时发现有变化,则拒绝事务

服务器端没执行完命令后会更新客户端的REDIS_DIRTY_CAS,服务器根据这个标志决定是否执行事务

redis事务不具有回滚机制

慢日志

slowlog-log-slower-than 事件

slowlog-max-len 数量

SLOWLOG GET 查看日志

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis(redisObject) 对象
  • redisServer
  • redis 事件
  • 主从同步
  • 事务
  • 慢日志
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档