Redis 五大数据类型(总结表)

前言

  • redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)
  • 理解每种数据类型的特点对于redis的开发和运维非常重要

mark

 一、String-字符串对象

命令应用描述
EXISTEEXISTS mykey判断该键是否存在,存在返回1,否则返回0
APPENDAPPEND mykey “hello”若该键并不存在,则创建key,存在则将内容追加,append命令返回当前Value的长度
GETGET mykey通过get命令获取该键,以判断append的结果
SETSET mykey “this is mykey”通过set命令为键设置新值,并覆盖原有值,若为字符串需要加双引号或单引号
STRLENSTRLEN mykey获取指定Key的字符长度,等效于C库中strlen函数
INCRINCR mykey该Key的值递增1
DECRDECR mykey该Key的值递减1
DELDEL mykey删除已有键
INCRBYINCRBY mykey 10指定增加的整数
DECRBYDECRBY mykey 10指定减少的整数
GETSETGETSET mycounter 0在设置新值得同时,并返回原有值,这两个操作原子性的同时完成
SETEXSETEX mykey 10 “hello world!”设置指定Key的过期时间为10秒
TTLTTL mykey通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1(-2)表示永不过期
SETNXSETNX mykey “hello”该键并不存在,因此该命令执行成功,存在则不执行命令
SETRANGESETRANGE mykey 6 dd从第六个字节开始替换2个字节
GETRANGEGETRANGE mykey 1 2截取该键的Value,从第一个字节开始,到第二个字节结束
MSETMSET key1 “hello” key2 “world”批量设置了key1和key2两个键,如果有旧值会被新值覆盖
MGETMGET key1 key2批量获取了key1和key2两个键的值
MSETNXMSETNX key2 “hello” key3 “world”批量设置了key2和key3两个键,但是key2已经存在,所以该命令执行失败并返回0

二、List-列表对象

命令应用描述
LPUSHLPUSH cloud a b c d创建该键及与其关联的List,之后在将参数中的values从左到右依次插入到表头
LPUSHXLPUSHX cloud e仅当key存在时,将value值插入表头
LRANGELRANGE cloud 0 -1返回列表中指定区间内的元素,0表示第一个元素,1表示第二个元素,-1表示最后一个元素
LPOPLPOP cloud移除并返回第一个元素,从头开始
LIENLLEN cloud查看列表中元素个数
LREMLREM cloud 2 b从头部(left)向尾部(right)变量链表,删除2个值等于b的元素,返回值为实际删除的数量
LSETLSET cloud 1 b将索引值为1的元素值设置为新值b
LINDEXLINDEX cloud 1获取索引值为1的元素值
LTRIMLTRIM cloud 0 2仅保留索引值0到2的元素
LINSERTLINSERT could before/after a 0#在元素a之前/之后插入新元素0
RPUSHRPUSH key1 a b c d e将值从左往右依次插入到表尾
RPUSHXRPUSHX key2 f指定键存在时执行,否则不执行
RPOPRPOP key1移除并返回键的第一个元素,从尾开始
RPOPLPUSHRPOPLPUSH key1 key2将键1尾部元素xxx弹出,同时再插入到键2的头部(原子性的完成这两步操作)

三、Hash-哈希对象

命令应用描述
HESTHSET hash field1 a field2 b field3 c给hash键创建三个字段及对应字段值
HGETHGET hash field1获取hash键,字段为field1的值
HDELHDEL hash field2删除hash键,字段为field2的值,成功返回1
HEXISTSHEXISTS hash field2判断hash键中字段为field2的值是否存在,存在返回1
HLENHLEN hash获取hash键的字段数量
HSETNXHSETNX hash1 field3 z给hash1键添加新字段field3,值为z,是否执行基于此字段是否存在,不管键是否存在,返回1表示执行成功
HINCRBYHINCRBY hash3 field1 1给hash3键的field1字段值加1
HGETALLHGETALL hash1返回hash1键的所有字段及其值,是逐对列出的
HKEYSHKEYS hash1仅获取hash1键中所有字段名
HVALSHVALS hash1仅获取hash1键中所有字段值
HMSETHMSET hash4 field1 hello field2 world批量为xxx键创建字段和赋值
HMGETHMGET hash4 field1 field2获取指定多个字段值

四、Set-集合对象

命令应用描述
SADDSADD myset a b c d e将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略,假如集合key不存在,则创建一个只包含添加的元素作成员的集合
SMEMBERSSMEMBERS myset查看插入的结果,输出的顺序与插入顺序无关
SCARDSCARD myset获取集合中成员的数量
SISMEMBERSISMEMBER myset d判断键中成员是否存在,返回0表示不存在,1表示存在
SPOPSPOP myset随机的移除并返回键中的某一成员
SREMSREM myset a b e从键中移出a/b/e,并返回移除成员个数,a/e刚已被移除了,所以返回1
SRANDMEMBERSRANDMEMBER myset该命令随机的返回某一成员
SMOVESMOVE myset myset1 c将键myset的c成员移到键myset1,成功返回1,失败返回0

五、Zset-有序集合对象

命令应用描述
ZADDZADD zset 1 a 2 b 3 c 4 d 5 e将一个或多个成员元素及其分数值加入到有序集当中
ZRANKZRANGE zset 0 -1 (withscores)查看所有成员(及对应分数)
ZCARDZCARD zset获取键中成员的数量
ZRANKZRANK zset e获取成员的位置索引值
ZCOUNTZCOUNT zset 2 4获取分数满足表达式[x <= score <= x]的成员的数量
ZREMZREM zset a b删除成员,返回实际删除成员的数量
ZSCOREZSCORE zset d获取成员的分数
ZINCRBYZINCRBY zset 2 a若成员不存在,则zincrby命令将添加该成员分数为2(并假设其初始分数为0)
ZRANGEBYSCOREZRANGEBYSCORE zset 2 4获取分数满足表达式[x <= score <= x]的成员,即 2 3 4
ZREMRRANGEBYSCOREZREMRANGEBYSCORE zset 1 3(ZRANGEBYSCORE zset -inf +inf limit 2 3)删除分数满足表达式[x <= score <= x]的成员,并返回实际删除的数量(-inf和+inf表示第一个和最后一个成员,limit 2 3表示索引为2开始的三个成员)
ZREMRANGEBYRANKZREMRANGEBYRANK zset 1 2删除位置索引满足表达式[x <= rank <= x]的成员,即(0d、1e,删除1和2索引值,结果只删了1e)
ZREVRANGEZREVRANGE zset 0 -1以位置索引从高到低的方式获取并返回此区间内的成员
ZREVRANGEBYSCOREZREVRANGEBYSCORE zset 5 3获取分数满足表达式[x >= score >= x]的成员,并以从高到底的顺序输出
ZREVRANKZREVRANK zset a获取成员索引,该用法是是反向索引排序
REVRANKzset a获取成员索引,该用法是是反向索引排序zset a获取成员索引,该用法是是反向索引排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值