Redis五大数据类型
key
-
keys *
查看当前库的所有键 -
exists <key>
判断某个键是否存在 -
type <key>
查看键的类型 -
del <key>
删除某个键 -
expire <key> <seconds>
为键值设置过期时间,单位秒 -
ttl <key
> 查看还有多久过期,-1表示永不过期,-2表示已过期 -
dbsize
查看当前数据库中key的数量 -
flushdb
清空当前库 -
Flushall
通杀全部库
字符串string操作命令
String类型,也就是字符串类型,是Redis中最简单的存储类型
其value是字符串,不过根据字符串的格式不同,又可以分为3类:
- string:普通字符串
- int:整数类型,可以做自增、自减的操作
- float:浮点类型,可以做自增、自减操作
具体操作:
-
set <key> <value>
设置指定的值 -
get <key>
获取指定的值 -
append <key> <value>
将给定的追加到原值的末尾 -
strlen <key>
获取值的长度 -
setnx <key> <value>
只有在key不存在时设置key的值 -
incr <key>
将key中存储的数字值增1
只能对数字值操作,如果为空,新增值为1 -
decr <key>
将key中存储的数字值减1
只能对数字之操作,如果为空,新增值为-1 -
incrby /decrby <key> 步长
将key中存储的数字值增减,自定义步长 -
mset <key1> <value1> <key2> <value2>
同时设置一个或多个key-value对(一个key-value设置失败,都失败) -
mget <key1> <key2> <key3>
同时获取一个或多个value -
msetnx <key1> <value1> <key2> <value2>
同时设置一个或多个key-value对,当且仅当所有给定的key都不存在 -
getrange <key> <起始位置> <结束位置>
获得值的范围(两边都是闭区间) -
setrange <key> <起始位置> <value>
用覆盖所存储的字符串值,从<起始位置>开始 -
setex <key> <过期时间> <value>
设置键值的同时,设置过期时间,单位秒 -
getset <key> <value>
以新换旧,设置了新值的同时获取旧值
更多请查看手册Redis 字符串(String)_redis教程
列表list
1)单键多值
2)Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
3)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差
具体操作:文章来源:https://www.toymoban.com/news/detail-787416.html
-
lpush/rpush <key> <value1> <value2>
从左边/右边插入一个或多个值 -
lpop/rpop <key>
从左边/右边吐出一个值。若吐完了,则key自动删除 -
rpoplpush <key1> <key2>
从列表右边吐出一个值,插到列表左边(只有右出左进) -
lrange <key> <start> <stop>
按照索引下标获得元素(从左到右)
获得全部元素:lrange <key> 0 -1
-
llen <key>
获得列表长度 -
linsert <key> before <value> <newvalue>
在value的前面插入newvalue -
lrem <key> <n> <value>
从左边删除n个value(从左到右)
集合set
1)Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的
2)Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。文章来源地址https://www.toymoban.com/news/detail-787416.html
-
sadd <key> <value1> <value2> ....
将一个或多个 member 元素加入到集合key 当中,已经存在于集合的 member 元素将被忽略。 -
smembers <key>
取出该集合的所有值。 -
sismember <key> <value>
判断集合是否为含有该值,有返回true,没有返回false -
scard <key>
返回该集合的元素个数 -
srem <key> <value1> <value2> ....
删除集合中的某个元素value1,value2。 -
spop <key>
随机从该集合中吐出一个值(不会从集合中删除) -
srandmember <key> <n>
随机从该集合中取出n个值。(会从集合中删除,并且集合元素为空,集合自动删除) -
sinter <key1> <key2>
返回两个集合的交集元素 -
sunion <key1> <key2>
返回两个集合的并集元素 -
sdiff <key1> <key2>
返回两个集合的差集元素
哈希hash
-
hset <key> <field> <value>
给key集合中的 field键赋值value -
hget <key1> <field>
从key1集合field取出 value -
hmset <key1> <field1> <value1> <field2> <value2>...
批量设置hash的值 -
hgetal <key>l
获取所有的filed-value -
hexists key <field>
查看哈希表 key 中,给定域 field 是否存在。 -
hkeys <key>
列出该hash集合的所有field -
hvals <key>
列出该hash集合的所有value -
hincrby <key> <field> <increment>
为哈希表 key 中的域 field 的值加上增量 increment -
hsetnx <key> <field> <value>
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在
有序集合zset (sorted set)
-
zadd key score1 member[score2 member2]
向有序集合中添加一个或多个成员,或者更新已存在的成员分数(注意是分数在前,成员在后) -
zrange key start stop [WITHSCORES]
通过索引区间返回有序集合中指定区间的成员【0,-1】查看所有,
加上withscores后返回值会带上分数 -
zincrny key increment member
有序集合中对指定成员的分数上加上增量increment -
zrem key member [member ...]
移除有序集合中一个或多个成员 -
zrangebyscore key min max [withscores] [limit offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。 -
zrevrangebyscore key max min [withscores] [limit offset count]
同上,改为从大到小排列。(注意是先max 后min) -
zrank key member:
获取sorted set中元素的排名,默认都是升序,如果要降序则在命令的Z后面添加REV即可 -
zcount <key> <min> <max>
统计该集合,分数区间内的元素个数
到了这里,关于Redis五大数据类型以及相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!