redis中数据类型命令有哪些

51次阅读
没有评论

共计 4218 个字符,预计需要花费 11 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍了 redis 中数据类型命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

redis 是键值对的数据库,有 5 中主要数据类型:

字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)

几个基本的命令:

函数说明 keys * 获得当前数据库的所有键
exists key [key …]判断键是否存在,返回个数,如果 key 有一样的也是叠加数 del key [key …]删除键,返回删除的个数
type key 获取减值的数据类型(string,hash,list,set,zset)flushall 清空所有数据库 config [get、set]redis 配置

-inf 负无穷

+inf 正无穷

一:字符串类型(string)

字符串类型是 Redis 的最基本类型,它可以存储任何形式的字符串。其它的四种类型都是字符串类型的不同形式。

函数语法最基本的命令:GET、SETGET key,SET key value value 如果有空格需要双引号以示区分整数递增:INCRINCR key 默认值为 0,所以首先执行命令得到 1,不是整型提示错误增加指定的整数:INCRBYINCRBY key increment 整数递减:DECRDECR key 默认值为 0,所以首先执行命令得到 -1,不是整型提示错误减少指定的整数:DECRBYDECRBY key increment 增加指定浮点数:INCRBYFLOATINCRBYFLOAT key increment 与 INCR 命令类似,只不过可以递增一个双精度浮点数向尾部追加值:APPENDAPPEND key value redis 客户端并不是输出追加后的字符串,而是输出字符串总长度获取字符串长度:STRLENSTRLEN key 如果键不存在返回 0,注意如果有中文时,一个中文长度是 3,redis 是使用 UTF- 8 编码中文的获取多个键值:MGETMGET key [key …] 例如:MGET key1 key2 设置多个键值:MSETMSET key value [key value …] 例如:MSET key1 1 key2 hello redis 二进制指定位置值:GETBIT

GETBIT key offset 例如:GETBIT key1 2,key1 为 hello 返回 1,返回的值只有 0 或 1,当 key 不存在或超出实际长度时为 0

设置二进制位置值:SETBITSETBIT key offset value,返回该位置的旧值二进制是 1 的个数:BITCOUNTBITCOUNT key [start end],start、end 为开始和结束字节位运算:BITOPBITOP operation destkey key [key …],operation 支持 AND、OR、XOR、NOT 偏移:BITPOSBITPOS key bit [start] [end]

二:散列类型(hash)

函数语法设置单个:HSETHSET key field value,不存在时返回 1,存在时返回 0,没有更新和插入之分设置多个:HMSETHMSET key field value [field value …]读取单个:HGETHGET key field,不存在是返回 nil 读取多个:HMGETHMGET key field [field …]读取全部:HGETALLHGETALL key,返回时字段和字段值的列表判断字段是否存在:HEXISTSHEXISTS key field,存在返回 1,不存在返回 0 字段不存在时赋值:HSETNXHSETNX key field value,与 hset 命令不同,hsetnx 是键不存在时设置值增加数字:HINCRBYHINCRBY key field increment,返回增加后的数,不是整数时会提示错误删除字段:HDELHDEL key field [field …],返回被删除字段的个数只获取字段名:HKEYSHKEYS key,返回键的所有字段名只获取字段值:HVALSHVALS key,返回键的所有字段值字段数量:HLENHLEN key,返回字段总数

三:列表类型(list)

内部使用双向链表实现,所以获取越接近两端的元素速度越快,但通过索引访问时会比较慢

函数语法添加左边元素:LPUSHLPUSH key value [value …],返回添加后的列表元素的总个数添加右边元素:RPUSHRPUSH key value [value …],返回添加后的列表元素的总个数移除左边第一个元素:LPOPLPOP key,返回被移除的元素值移除右边第一个元素:RPOPRPOP key,返回被移除的元素值列表元素个数:LLENLLEN key,不存在时返回 0,redis 是直接读取现成的值,并不是统计个数获取列表片段:LRANGE

LRANGE key start stop,如果 start 比 stop 靠后时返回空列表,0 -1 返回整个列表正数时:start 开始索引值,stop 结束索引值(索引从 0 开始)负数时:例如 lrange num -2 -1,- 2 表示最右边第二个,- 1 表示最右边第一个,

删除指定值:LREM

LREM key count value,返回被删除的个数

count 0,从左边开始删除前 count 个值为 value 的元素

count 0,从右边开始删除前 |count| 个值为 value 的元素

count=0,删除所有值为 value 的元素

索引元素值:LINDEXLINDEX key index,返回索引的元素值,- 1 表示从最右边的第一位设置元素值:LSETLSET key index value 保留列表片段:LTRIMLTRIM key start stop,start、top 参考 lrange 命令一个列表转移另一个列表:RPOPLPUSH

RPOPLPUSH source desctination,从 source 列表转移到 desctination 列表,该命令分两步看,首先 source 列表 RPOP 右移除,再 desctination 列表 LPUSH

四:集合类型(set)

集合类型值具有唯一性,常用操作是向集合添加、删除、判断某个值是否存在,集合内部是使用值为空的散列表实现的。

函数语法添加元素:SADD

SADD key member [member …],向一个集合添加一个或多个元素,因为集合的唯一性,所以添加相同值时会被忽略。返回成功添加元素的数量。

删除元素:SREMSREM key member [member …] 删除集合中一个或多个元素,返回成功删除的个数。获取全部元素:SMEMBERSSMEMBERS key,返回集合全部元素值是否存在:SISMEMBER
 SISMEMBER key member,如果存在返回 1,不存在返回 0 差运算:SDIFFSDIFF key [key …],例如:集合 A 和集合 B,差集表示 A -B,在 A 里有的元素 B 里没有,返回差集合;多个集合(A-B)- C 交运算:SINTERSINTER key [key …],返回交集集合,每个集合都有的元素并运算:SUNION SUNION key [key …],返回并集集合,所有集合的元素集合元素个数:SCARDSCARD key,返回集合元素个数集合运算后存储结果

SDIFFSTROE destination key [key …],差运算并存储到 destination 新集合中 SINTERSTROE destination key [key …],交运算并存储到 destination 新集合中 SUNIONSTROE destination key [key …],并运算并存储到 destination 新集合中

随机获取元素:SRANDMEMGER

SRANDMEMBER key [count],根据 count 不同有不同结果,count 大于元素总数时返回全部元素 count 0,返回集合中 count 不重复的元素 count 0,返回集合中 count 的绝对值个元素,但元素可能会重复

弹出元素:SPOPSPOP key [count],因为集合是无序的,所以 spop 会随机弹出一个元素

五:有序集合类型 zset(sorted set:有序集合)

Redis zset 和 set 一样也是 string 类型元素的集合, 且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。

redis 正是通过分数来为集合中的成员进行从小到大的排序。zset 的成员是唯一的, 但分数 (score) 却可以重复。

函数语法添加集合元素:ZADDZADD key [NX|XX] [CH] [INCR] score member [score member …],不存在添加,存在更新。获取元素分数:ZSCOREZSCORE key member,返回元素成员的 score 分数元素小到大:ZRANGE

ZRANGE key start top [WITHSCORES],参考 LRANGE,加上 withscores 返回带元素,即元素,分数当分数一样时,按元素排序

元素大到小:ZREVRANGEZREVRANGE key start [WITHSCORES],与 zrange 区别在于 zrevrange 是从大到小排序指定分数范围元素:ZRANGEBYSCORE

ZRANGEBYSCORE key min max [WITHSCORE] [LIMIT offest count]返回从小到大的在 min 和 max 之间的元素,(符号表示不包含,例如:80-100,(80 100,withscore 返回带分数 limit offest count 向左偏移 offest 个元素,并获取前 count 个元素

指定分数范围元素:ZREVRANGESCORE

ZREVRANGEBYSCORE key max min [WITHSCORE] [LIMIT offest count]与 zrangebyscore 类似,只不过该命令是从大到小排序的。

增加分数:ZINCRBYZINCRBY key increment member,注意是增加分数,返回增加后的分数;如果成员不存在,则添加一个为 0 的成员。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“redis 中数据类型命令有哪些”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计4218字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)