Redis 学习笔记(篇三):跳表】的更多相关文章

继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是使用双向链表实现的,所以操作列表两端的字符串速度会很快. 2.命令 1)向列表两端添加元素 LPUSH key value [value...] RPUSH key value [value...] LPUSH  key value [value...] 是向列表左边添加元素,添加多个元素的话依次向…
Redis的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表节点,而每个哈希节点就保存在字典中的一个键值对. redis字典所用的哈希表由disht结构定义. typedef struct dictht{ dictEntry **table;//哈希表数组 unsigned long size;//哈希表大小 unsigned long sizemask;//哈希表大小掩码,用于计算索引值 ,总是等于size -1 unsigned long used;//该哈希表已有节点数量 } ta…
Redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行. 使用Lua脚本的好处如下: 1.减少网络开销:本来5次网络请求的操作,可以用一个请求完成,原先5次请求的逻辑放在redis服务器上完成.使用脚本,减少了网络往返时延. 2.原子操作:Redis会将整个脚本作为一个整体执行,中间不会被其他命令插入. 3.复用:客户端发送的脚本会永久存储在Redis中,意味着其他客户端可以复用这一脚本而不需要使用代码完成同样的逻辑. 1.Redis命令行执行Lua脚本 01 .…
参考:http://doc.redisfans.com/ del key 删除给定的一个或多个Key(多个key用空格隔开),删除成功返回1,当key不存在时,返回0:例:del no-exist-key foo. dump key 序列化给定的key,并返回被序列化的值,使用restore可以反序列化:例:dump foo. exists key 检查key是否存在,若key存在返回1,否则返回0:例:exists foo. expire key seconds 为key设置超时时间(单位:秒…
Redis 的键管理 一.Redis 数据库管理 Redis 是一个键值对(key-value pair)的数据库服务器,其数据保存在 src/server.h/redisDb 中(网上很多帖子说在 redis.h 文件中,但是 redis 6.x版本目录中都没有这个文件.redisDb 结构应该在 server.h文件中) typedef redisServer { .... // Redis数据库 redisDb *db; .... } Redis 默认会创建 16 个数据库,每个数据库是独…
Redis 常用命令 1.DEL key 删除key2.EXISTS key 检查key是否存在3.KEYS * 查看所有的key4.EXPIRE key seconds 设置key的过期时间5.TTL key 返回key的剩余生存时间6.TYPE key 返回key的类型 String 常用 1.SET key value 设置指定key的值2.GET key 获取指定key的值3.GETRANGE key start end 返回key start到end位置的字符4.STRLEN key…
一.数据备份与恢复 数据备份: localhost:> save OK 该命令会在redis的安装目录中创建文件dump.rdb,并把数据保存在该文件中 查看redis的安装目录: localhost:> config get dir ) "dir" ) "/home/jihite/soft/redis-2.8.17" 数据恢复时,只要将备份文件dump.rdb拷贝到redis的安装目录即可 二.数据库操作 redis中,一共有16个数据库,分别是0~1…
string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte数组,最大上限是1G字节.下面是string类型的定义. struct sdshdr {  long len;  long free;  char buf[]; }; buf是个char数组用于存贮实际的字符串内容.其实char和c#中的byte是等价的,都是一个字节.len是buf数组的长度,fr…
一.介绍 String类型,是二进制安全的,存入和获取的数据相同,value最多可以容纳的数据长度是512M,可以存放json数据,图像数据等等. 存储String常用命令: 赋值(set) 取值(get) 删除(del) 数据增减(incr.decr) 扩展命令(incrby.decrby) 追加字符串(append) 获取字符串长度(strlen) 字符串替换指定位置的值(setrange) 截取字符串(getrange) 批量获取值(mget) 设置一个或多个key-value(mset)…
RPOPLPUSH source destination(弹出source列表最右端的元素,并推入destination的最左端,同时返回这个元素) BRPOPLPUSH source destinaton timeout(弹出source列表最右端的元素,并推入destination的最左端,同时返回这个元素:如果source为空,则在timeout秒之内阻塞并等待可弹出元素 ) BLPOP/BRPOP key1 [key2...] timeout(从给定的列表中第一个非空列表弹出最左/右端元…