redis
mytt_10566
这个作者很懒,什么都没留下…
展开
-
Redis学习笔记 - 列表对象list
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异列表对象的编码是:ziplistlinkedlist一、列表对象的编码1.1 ziplist编码ziplist编码的列表对象使用压缩列表作为底层实现,每个压缩列表节点(entry)保存了一个列表元素。示例:插入三个元素:redis> rpus...原创 2019-07-08 23:50:47 · 641 阅读 · 0 评论 -
Redis学习笔记 - 文件事件
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或其他Redis服务器)进行连接,文件事件就是服务器对套接字操作的抽象。服务端与客户端(或其他服务器)的通信会产生相应的文本事件,而...原创 2019-08-10 22:59:17 · 196 阅读 · 0 评论 -
Redis学习笔记 - 时间事件、事件的调度与执行
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异一、时间事件Redis的时间事件分为两类:定时事件:让一段程序在指定的时间之后执行一次。周期性事件:让一段程序每隔指定时间就执行一次。一个时间事件主要由以下三个属性组成:id:服务器为时间事件创建的全局唯一ID(标识号)。ID号按从小到大的顺序递增。w...原创 2019-08-10 22:59:55 · 622 阅读 · 0 评论 -
Redis学习笔记 - 慢查询日志
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异http://www.redis.cn/commands/slowlog.htmlRedis慢查询日志功能:记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度。(1)服务器配置中和慢查询相关的两个属性:slowlog-...原创 2019-08-26 10:37:28 · 230 阅读 · 0 评论 -
Redis学习笔记 - 发布与订阅
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异http://www.redis.cn/commands/slowlog.html原创 2019-08-26 10:37:53 · 193 阅读 · 0 评论 -
Redis学习笔记 - 事务
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异http://www.redis.cn/topics/transactions.htmlRedis通过MULTI、EXEC、WATCH等命令来实现事务(transaction)功能。事务提供了一种将多个命令请求打包,然后一次性、按顺序执行多个命令的机制,并且在...原创 2019-09-02 09:40:34 · 558 阅读 · 0 评论 -
Redis学习笔记 - Lua脚本(1) - 使用Lua脚本
参考:http://www.redis.cn/commands/eval.htmlhttps://www.runoob.com/redis/redis-scripting.htmlRedis从2.6.0版本开始支持Lua脚本,通过在服务器嵌入Lua环境,Redis客户端可以使用Lua脚本,直接在服务器端原子地执行多个Redis命令。1.使用Lua脚本的好处:减少网络开销:可以将多个...原创 2019-09-02 09:41:19 · 1017 阅读 · 0 评论 -
Redis学习笔记 - Lua脚本(2) - Lua脚本的实现
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis中Lua脚本相关命令介绍以及简单使用,参考博客:https://blog.csdn.net/mytt_10566/article/details/99715998一、创建并修改Lua环境为了在Redis服务器创建Lua脚本,Redis在服务器内嵌了一个Lu...原创 2019-09-02 09:41:49 · 4749 阅读 · 0 评论 -
Redis学习笔记 - 排序(1) - 使用SORT命令
参考:http://www.redis.cn/commands/sort.htmlhttp://doc.redisfans.com/key/sort.html一、命令SORT key [BY pattern] [LIMIT offset count] [GET pattern] [ASC|DESC] [ALPHA] destination返回或保存给定列表(list)、集合(set...原创 2019-09-18 09:16:37 · 402 阅读 · 0 评论 -
Redis学习笔记 - 排序(2) - SORT命令的实现
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis中sort命令简单使用,参考博客:https://blog.csdn.net/mytt_10566/article/details/100042971...原创 2019-09-18 09:17:12 · 308 阅读 · 0 评论 -
Redis学习笔记 - 持久化
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异持久化方式:全量写入RDB:阻塞式SAVE非阻塞式BGSAVE增量写入AOF一、全量写入RDBredis配置文件中默认的RDB配置前3行是触发RDB的条件,第一行:每900秒redis有一条数据被修改则触发RDB;第二三行类似;dbfilen...原创 2019-08-10 22:58:27 · 1210 阅读 · 0 评论 -
Redis学习笔记 - 服务器(3) - 初始化服务器
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异一个Redis服务器从启动到能够接收客户端命令的请求,需要经过一系列的初始化和设置过程,比如:初始化服务器状态接受用户指定的服务器配置创建相应的数据结构和网络连接…1. 初始化服务器状态结构初始化服务器状态第一步就是创建一个 struct redisSe...原创 2019-08-19 10:44:44 · 286 阅读 · 0 评论 -
Redis学习笔记 - 服务器(2) - serverCron函数
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异serverCron函数:这个函数负责管理服务器的资源,并保持服务器自身的良好运转。默认每隔100ms执行一次。下面介绍serverCron函数执行的操作,以及redisServer结构(服务器状态)和该函数有关的属性。1. 更新服务器时间缓存Redis服务器中...原创 2019-08-19 10:44:13 · 541 阅读 · 0 评论 -
Redis学习笔记 - 哈希对象hash
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异哈希对象的编码是:ziplisthashtable一、哈希对象的编码1.1 ziplist编码ziplist编码的哈希对象使用压缩列表作为底层实现,当有新的键值对要加入哈希对象时,程序会先将保存了键的压缩列表推入到压缩列表表尾,然后再将保存了值的压缩列表...原创 2019-07-08 23:51:17 · 240 阅读 · 0 评论 -
Redis学习笔记 - 集合对象set
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异集合对象的编码是:intsethashtable一、集合对象的编码1.1 intset编码intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。创建一个使用intset编码的集合对象:redis> s...原创 2019-07-08 23:51:45 · 308 阅读 · 0 评论 -
Redis学习笔记 - 有序集合对象zset
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异有序集合对象的编码是:ziplistskiplist一、有序集合对象的编码1.1 ziplist编码ziplist编码的有序集合对象使用压缩列表作为底层实现,每个集合元素使用两个紧挨在一起的压缩列表节点来保存,第一个节点保存元素的成员(member),第...原创 2019-07-08 23:52:13 · 689 阅读 · 1 评论 -
Redis学习笔记 - 字符串对象
参考:<<Redis设计与实现>>字符串对象的编码可以是 int、embstr 或 raw。如果一个字符串对象保存的是整数值,并且可以用long类型来表示,那么就会将整数值赋值给字符串对象结构里的ptr属性,以及将字符串对象的编码设置为int。如果保存的是字符串,并且这个字符串值的长度大于44字节,那么字符串对象将使用SDS(简单动态字符串)保存,并将编码设置为ra...原创 2019-07-03 23:40:09 · 202 阅读 · 0 评论 -
Redis学习笔记 - 类型检查与命令多态
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis中用于操作键的命令可以分为2种类型:对任何类型的键执行,如del、expire、rname、type、object等命令对特定类型的键执行,如set、get、append、strlen等命令只能对字符串(string)执行注:如果对字符串键执行lle...原创 2019-07-21 23:05:47 · 178 阅读 · 0 评论 -
Redis学习笔记 - 内存回收、对象共享、对象的空转时长
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异一、内存回收C语言不具备自动内存回收功能,所以Redis在自己的对象系统中构建了一个引用计数(reference counting)计数实现的内存回收机制。通过这一机制,程序可以通过跟踪对象的引用计数信息,在适当时候自动释放对象并进行内存回收。每个对象的引用计数信...原创 2019-07-21 23:06:41 · 463 阅读 · 0 评论 -
Redis学习笔记 - 过期键删除策略
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异一、过期键删除策略一个键过期了,什么时候它会被删除?可能有以下三种策略:定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作惰性删除:放任键过期不管,每次从键空间获取键时,检查取得的键是否过期,如...原创 2019-07-21 23:07:32 · 280 阅读 · 0 评论 -
Redis学习笔记 - 客户端
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis服务器是一对多服务器程序:一个服务器可以和多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器接收并处理客户端发送的命令请求,并向客户端返回命令回复。使用由I/O多路复用技术实现的文件事件处理器,Redis服务器可以使用单线程单进程的方式来处...原创 2019-08-19 10:43:05 · 209 阅读 · 0 评论 -
Redis学习笔记 - 服务器(1) - 命令请求的执行过程
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异Redis服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并通过资源管理来维持服务器自身的运转。命令请求的执行过程一个命令请求从发送到获得回复的过程中,客户端和服务器需要完成一系列操作。如客户端执行了以下命令...原创 2019-08-19 10:43:41 · 535 阅读 · 0 评论 -
Redis学习笔记 - 监视器
参考:<<Redis设计与实现>>注:这本书是基于Redis3.0版本写的,和后面的版本有点差异原创 2019-09-18 09:17:50 · 176 阅读 · 0 评论