Redis基本数据结构总结之SET、ZSET和HASH
来源:互联网 发布:网络攻防入门 编辑:程序博客网 时间:2024/05/28 14:57
Redis基本数据结构总结
前言
五种数据结构
- 字符串:包括字符串、整数和浮点数;
- 列表:一个链表,链表上面的每个结点都是一个字符串,其遵从队列的访问格式-先进先出,也就是从链表的结尾进行插入,链表的头部进行弹出;
- 集合:里面是一个容器,他不允许存在相同的元素,每个值都是独一无二的;
- 哈希:是一个键值对组合而成的无序散列表,其的键同样是不允许重复的;
- 有序集合:是在集合的基础之上进行了排序;
Key
DELkey
移除给定的一个或者多个key。
KEYSpattern
查找符合给定模式的key,注意其匹配的模式怎么使用,包括了?、*、[]等等。
RANDOMKEY
从当前数据库中随机返回一个key。
EXPIREkey seconds
为给定的key设置存活时间,时间一过则把对应的key进行销毁,注意单位为秒。
TTLkey
获取key剩余的存活时间,单位为秒,和上面的命令相对应,如果该key不存在或者是过期的话,则返回-2/-1(在不同数据库返回的值不一样?)。
MOVEkey db
将key移动到指定的db,默认情况下使用的是0号数据库,注意要移动到相应的数据库(SELECT db)才能看到。
RENAMEkey newkey
将key更改为新的key,注意如果newkey在数据库中已经存在,那么旧的key的数据会把已经存在的新的key给覆盖掉。
TYPEkey
返回指定的key的类型,如果不存在则返回的是none,而不是nil(进行操作才返回的)。
OBJECT REFCOUNTkey | OBJECT ENCODINGkey | OBJECT IDLETIMEkey
分别返回key所引用的次数,key对应的编码,key空闲的时间(没有读也没有写,单位为秒)。
RENAMENXkey newkey
在RENMAE的基础上判断key是否存在,更加的安全。
EXPIREATkey timestamp
设置时间戳。
PERSISTkey
移除给定key的生存时间,也可以使用EXPIRE 来重置。
SORTkey [BYpattern] [LIMIToffset count] [GETpattern] [ASC|DESC] [ALPHA] [STOREdestination]
这个方法只能用在LIST、SET、ZSET上,这里的pattern和之前的keys的pattern是一样的,LIMIT则是用来限制返回的偏移量和数量,GET是获取返回的指定的key的内容,ASC是升序、DESC是降序, ALPHA则是用在对字符串进行排序的时候,STORE则是指定存储的地方,可以指定到一个key上,这样就可以通过GET来访问到。
STRING
GETkey
获取存储在给定键的值。
MGETkey...
获取多个指定的键值。
GETRANGEkey start end
获取指定范围的键值,支持反向操作,如果end超出实际范围,则忽略,返回全值。
GETSETkey value
集合了GET和SET的功能,不过其返回的是该键被设置之前的值,但是其的值已经发生了改变 ,注意如果之前没有该键,则返回nil。
SETkey value
设置存储在给定键中的值。
SETNXkey value
注意在key已经存在的情况下,不进行任何操作,也就是说 SET if key not exist;可能存在一个锁的问题。
SETEXkey seconds value
集合了SET和EXPIRE的功能,如果key存在,则覆盖掉。
SETRANGEkey offset value
从偏移量开始设置,注意的是当这个value不足以把之前的value给覆盖掉时,那么仍然会显示之前没有被覆盖掉的值。这里返回的是字符串总的长度。如果空白字符串不存在的话,则相当于在空白字符串上进行操作。
MSETkey value ...
可以同时设置多个键值对,如果不像覆盖掉key的话,可以使用MSETNX。
MSETNXkey value...
和SETNX的作用是一样的,这里只有全部key都设置成功,才能返回1,只要有一个key已经存在,就会返回0。
APPENDkey value
追加字符串值,返回新字符串长度,可以添加空字符串,返回的是原来的长度。
STRLENkey
返回字符串长度。
DECRkey
将key的值减一,如果不存在key,则会先进行SET,并且将该键值初始化为0。该命令只能使用在数字上面。
DECRBYkey decrement
在上面的基础之上减去指定的值。
INCR key和 INCRBY key increment
同DECR和DECRBY
SETBITkey offset set_or_clean
将字符串看作是二进制,并且将字符串指定偏移量的二进制位设置为指定值,可以是set或者clean。同样的,如果key不存在,则帮其进行设置。
GETBITkey offset
把字符串看作是二进制串,并且返回二进制串中指定偏移量的二进制位的值。
LIST
LPUSHkey value...
把多个键值加入到列表key的表头中,返回列表的长度。
LPUSHXkey value...
在上面的基础之上,如果key不存在,则不进行任何操作,即 LPUSH if key exists。
RPUSHkey value
插入到表尾。
RPUSHXkey value
类似LPUSHX。
LPOPkey
移出并且返回头元素。
RPOP key
移出并且返回尾元素。
BLPOPkey... timeout
相当于LPOP的阻塞版本,如果其列表没有元素的时候,则会一直阻塞到列表中存在值并且进行LPOP操作,我们还可以设置超时时间,如果是0的话,则表明其可以阻塞到无限时间长。
BRPOPkey... timeout
参照BLPOP。
LLENkey
返回列表的长度。
LRANGEkey start stop
返回只等区间长度的元素,注意stop要大于start,否则返回一个空列表。
LREMkey count value
删除列表中和value相等的元素。这个取决于count的值,如果为正数,正向搜索删除,如果为负数,反向搜索删除,如果等于0,则全部删除;返回被删除的个数。
LSETkey index value
设置指定下标的值为新的value。
LTRIMkey start stop
将指定返回值保留下来,其余均删除。
LINDEXkey index
返回指定下标index的值。
LINSERTkey BEFORE|AFTERprivot value
将key添加到privot之前或者之后,如果privot不存在或者列表为空,则不进行任何操作。如果成功则返回列表长度。
RPOPLPUSHsource destination
将source中的尾元素弹出并且插到destination列表的头元素的位置上,可以简单的理解为其进行了插队的操作;如果destination不存在则默认设置为空列表,但是如果source不存在则不进行任何的操作。
BROPLPUSHsource destination timeout
上面版本的阻塞版本,如果timeout为0,则可以无限期阻塞。
SET
SADDkey-name [item...]
添加多个元素到集合中,并且返回添加到集合中的的元素的个数。
SREMkey-name [item...]
删除多个元素到集合中,并且返回删除的元素的个数。
SISMEMBERkey-name item
判断该元素是否存在于该集合中。
SCARDkey-name
返回该集合的元素数量。
SMEMBERSkey-name
返回该集合的所有元素。
SRANDMEMBERkey-name [count]
随机的返回该集合的count个元素,如果count是正数的话,不会重复,但是是负数的话,则可能就会重复。
SPOPkey-name
随机的弹出并且返回该值。
SMOVEfrom-key-name to-key-name item
将该元素从from移动到to中,成功则返回1,相反返回0。
SDIFFkey-name [key-name...]
返回在第一个集合中存在,其它集合不存在的元素,即取差集。
SDIFFSTOREdest-key key-name [key-name...]
分成DIFF和STORE来看,也就是将DIFF的结果存储在dest-key中。
SINTERkey-name [key-name...]
返回在所有集合中同时存在的元素,即取并集。
SINTERSTOREdest-key key-name [key-name...]
分成INTER和STORE来看,也就是将INTER的结果存储在dest-key中。
SUNIONkey-name [key-name...]
返回在所有集合中存在的元素,即取交集。
SUNIONSTOREdest-key key-name [key-name...]
分成UNION和STORE来看,也就是将UNION的结果存储在dest-key中。
有序集合
ZADDkey-name score member [score member...]
将带有给定分值的成员加入到有序集合中。
ZREMkey-name member [member..]
从有序集合里面移除给定的成员,并且返回。
ZCARDkey-name
返回有序集合中元素的数量。
ZINCRBYkey-name increment member
给成员加上increment。
ZCOUNTkey-name min max
返回值介于min和max之间的成员数量。
ZRANKkey-name member
返回成员的排名。
ZSCOREkey-name member
返回成员的分值。
ZRANGEkey-name start stop [WITHSCORES]
返回排名介于start到stop的成员,如果WITHSCORES为True的话,则分值也一起返回,如果stop为-1的话,则返回全部。
ZREVRANKkey-name member
分成REV和RANK来看,REV:成员从小到大进行排列,RANK:返回具体的排名位置。
ZREVRANGEkey-name start stop [WITHSCORES]
分成REV和RANGE来看,REV:成员从小到大进行排列,RANGE:返回具体的排名位置。
ZRANGEBYSCOREkey-name min max [WITHSCORES] [LIMIT offset count]
返回分值介于min到max之间到所有成员,可以指定返回从偏移量开始的count个成员。
ZREVRANGEBYSCOREkey-name max min [WITHSCORES] [LIMIT offset count]
返回同上,不过是成员已经从大到小进行排列,注意这里是max-min。
ZREMRANGEBYRANKkey-name start stop
将ZRANGEBYRANK返回的成员删除掉。
ZREMRANGEBYSCOREkey-name min max [WITHSCORES] [LIMIT offset count]
同样的道理,将ZRANGEBYSCORE返回的成员删除掉。
ZINTERSTOREdest-key key-name [key-name...]
和集合类似,分成INTER和STORE来看,也就是将INTER的结果存储在dest-key中。
ZUNIONSTOREdest-key key-name [key-name...]
和集合类似,分成UNION和STORE来看,也就是将UNION的结果存储在dest-key中。
散列
HMSETkey-name key value [key value...]
设置一个或者多个键值对。
HMGETkey-name key...
可以获取多个键对应的值。
HDELkey-name key...
删除多个键值对,返回成功删除的数量。
HLENkey-name
返回键值对数量
HEXISTkey-name key
判断该键值是否存在于散列中。
HKEYSkey-name
获取散列所有的键。
HVALSkey-name
获取散列所有的值。
HGETALLkey-name
获取所有的键值对。
HINCREBYkey-name key increment
将key保存的值加上increment。
HINCREBYFLOATkey-name key increment
将key保存的值加上浮点数increment。
- Redis基本数据结构总结之SET、ZSET和HASH
- Redis-Service.Stack.Redis对Redis基本数据类型String,List,Hash,Set,ZSet的操作
- Redis String、List、Set、Hash、ZSet常用命令
- Redis数据结构详解之Zset
- Redis数据结构详解之Zset
- Redis数据结构详解之Zset
- 初识redis之常用Set和ZSet命令
- 分布式内存数据库---Redis操作String、list、set、hash和Zset
- Set/ZSet/Hash/List
- Redis学习手册(Set和Zset数据类型)
- Redis系列-set类型和zset类型
- redis set类型和zset类型
- redis key,string,hash,list,set,zset指令汇总
- Redis数据结构详解之Zset(五)
- Redis数据结构详解之Zset(五)
- Redis lesson9 Redis中 Sorted Set(ZSet) 基本操作
- 04_NoSQL数据库之Redis数据库:set类型和zset类型
- NoSQL数据库之Redis数据库管理四(set类型和zset类型)
- Xamarin.Forms 快速入门
- 深入理解Java对象序列化
- Saving key "/home/ubuntu/.ssh/id_rsa" failed: Permission denied
- js递归把多层js转数组
- HDU 3069 Ancient Printer (模拟)
- Redis基本数据结构总结之SET、ZSET和HASH
- linux的用户与用户组
- OpenCV学习笔记4-鼠标绘图
- FLex布局实现导航
- Mac上mysql卸载重装及配置
- Python for 循环语句
- Hive 之 SQL执行计划深度解析
- Xamarin.Forms 深度解析
- 深度学习之caffe1——软件配置与测试