Redis不同数据类型的命令语句详解

 更新时间:2022年10月09日 14:54:51   作者:正大光明瑞士卷  
这篇文章主要介绍了Redis不同数据类型的命令语句,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、String

String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等

Ⅰ、set、get、append、strlen、exists

append key value
#追加键值,并返回追加后的长度(若键不存在,则相当于创建键)
exists key [key...]
#判断该键是否存在,存在返回1,否则返回0
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
#创建键
get key
#查看键值
strlen key
#获取指定key的字符长度

Ⅱ、incr、decr、incrby、decrby

需要值为整数,否则会报错

incr key
#键值增1
decr key
#键值减1
incrby key increment
#键值增加指定值
decrby key increment
#键值减少指定值

Ⅲ、getset、setnx

GETSET key value
#获取key值并返回,同时给key设置新值
 
SETNX key value
#不存在键的话执行set操作,存在的话不执行

Ⅳ、setex、ttl

setex key seconds value
#设置指定key的过期时间为指定值
 
ttl key  
#tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。获取已过
期的Key将返回(nil)

Ⅴ、mget、mset、msetnx

MSET key value [key value …]
#批量设置键-值对
 
MGET key [key …]
#批量获取键值对
 
MSETNX key value [key value …]
#批量设置键值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0

二、List

列表的元素类型为String,按照插入顺序在列表的头部和尾部添加元素

Ⅰ、lpush、lpushx、lrange

LPUSH key value [value …]
#在头部(左侧)依次插入列表元素 
 
LPUSHX key value
#键必须存在才能执行,在头部插入元素值并返回并返回列表元素数量
 
LRANGE key start stop
#取从位置索引start到位置索引stop的所有元素(所以以0开始)
lrange key 0 -1 
#展示所有

Ⅱ、lpop、llen

lpop key
#移除并返回键的第一个元素
 
llen key 
#获取表中元素数量

Ⅲ、lrem、lset、lindex、ltrim

lrem key count value
#从头部开始删除count个为value的元素,并返回实际删除数量
lset key index value
#将位置索引为index的元素设置新值value
lindex key index
#获取索引为index的元素
ltrim key start stop
#仅保留从位置索引start到索引stop的元素

 lrem删除一个符合value为a的值

lset将索引为1(从0开始,即第二个)的元素替换为新值a,获取索引为2的元素

 只保留索引0~2的元素

 Ⅳ、linsert

LINSERT key BEFORE|AFTER pivot value
#在元素pivot的前面(做左)或后面(右)插入新元素value

 在c前面插入b

 Ⅴ、rpush、rpushx、rpop、rpoplpush

RPUSH key value [value …]
#在列表的尾部依次插入value
 
RPUSHX key value
#key必须存在才可执行,将value从尾部插入,并返回所有元素数量
 
RPOP key
#在尾部弹出(移除)一个元素,并返回该元素
 
RPOPLPUSH source destination
#在key1的尾部弹出一个元素并返回,将它插入key2的头部

 rpush从test尾部依次插入jklmn

rpop尾部第一个元素 

 将test的尾部元素m弹出,同时再插入到test1的头部(原子性的完成这两步操作),也可以作用在test自己身上,将最后一个元素提到第一个

三、Hash

Hash用于存储对象,可以采用这样的命名方式(hash格式):对象列别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值

Ⅰ、hset、hget、hexisits、hdel、hlen、hsetnx

hset key field value
#创建key
 
hget key field
#获取key-value
 
hexists key field
#key是否存在
 
hdel key field [field ...]
#删除指定key
 
hlen key
#key字段数
 
hsetnx key field value
#不重复的创建key,即只有指定的key不存在才可以创建

Ⅱ、hincrby

hincrby key field increment
#给指定的hash类型(整数)值指定增长值

 key hash kk字段设值为4,hincrby1后kk值为5

Ⅲ、hgetall、hkeys、hvals、hmset、hmget

hgetall key
#输出指定字段的所有字段以及值
 
hkeys key
#输出指定键中的所有字段名
 
hvals key
#输出指定键中的所有字段值
 
hmset key field value [field value ...]
#一次性设置多个字段
 
hmget key field [field ...]
#一次性获取多个字段

四、set

无序集合,元素类型为string类型,元素具有唯一性,不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

应用范围:

可以使用Redis的Set数据类型跟踪一些唯一性数据,比如访问某一博客的唯一IP地址信息。对于此场景,我们仅需在每次访问该博客时将访问者的IP存入Redis中,Set数据类型会自动保证IP地址的唯一性。充分利用Set类型的服务端聚合操作方便、高效的特性,可以用于维护数据对象之间的关联关系。比如购买某一电子设备的客户ID被存储在一个指定的Set中,而购买另外一种电子产品的客户ID被存储在另外一个Set中,如果此时我们向获取有哪些客户同时购买了这两种商品时,Set的intersections命令就可以充分发挥它的方便和效率的优势

Ⅰ、sadd、smembers、scard、sismember

sadd key member [member ...]
#创建键并加入member
 
smembers key
#查看指定key中所有的members
 
scard key
#查看指定key中members个数
 
sismember key member
#判断指定key中的member是否存在

创建key-set,members为qq、ww、ee、rr,判断qq在其中返回1,判断pp不在其中返回0 

 Ⅱ、spop、srem、srandmember、smove

spop key [count]
#随机的移除并返回key中的某一成员
 
srem key member [member ...]
#从指定key中移除指定member
 
srandmember key [count]
#随机输出指定数量的members
 
smove source destination member
#将一个member移动到另一个key中

 五、Sorted Set

有序集合,元素类型为string,元素具有唯一性,不能重复。每个元素都会关联一个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同

应用范围:

可以用于一个大型在线游戏的积分沛航胖,每当玩家的分数发生变化时,可以执行ZADD命令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过usename来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息。Sorted-Set类型还可用于构建索引数据

Ⅰ、zadd、zcard、zcount、zrem、zincrby、zscore、zrange、zrank

zadd key [NX|XX] [CH] [INCR] score member [score member ...]
#向有序集合内添加members,或更新已存在的score
 
zcard key
#获取key中的members数量
 
zcount key min max
#输出满足 min <= score <= max 条件的成员数量
 
zrem key member [member ...]
#删除成员member并返回操作后的成员数量
 
zincrby key increment member
#让指定的成员以指定increment增加
 
zrange key start stop [WITHSCORES]
#查看成员,从0开始
 
zrank key member
#获取成员的索引位置

Ⅱ、zrangebyscore、zremrangebyrank、zremrangebyscore

zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
#获取满足min <= score <= max 的成员
 
zremrangebyrank key start stop
#删除满足min <= rank <= max 的成员
 
zremrangebyscore key min max
#删除满足min <= score <= max 的成员

Ⅲ、zrevrange、zrevrangebyscore、zrevrank

zrevrange key start stop [WITHSCORES]
#以位置索引从高到低的方式获取并返回此区间内的成员
 
zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
#获取满足 min <= score <= max 的成员
 
zrevrank key member
#获取指定成员的索引位置

到此这篇关于Redis不同数据类型的命令语句详解的文章就介绍到这了,更多相关Redis命令语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Redis中地理位置功能Geospatial的应用

    详解Redis中地理位置功能Geospatial的应用

    Geospatial Indexes 是 Redis 提供的一种数据结构,用于存储和查询地理位置信息,这篇文章就来和大家详细讲讲Geospatial的具体应用吧
    2023-06-06
  • Redis list 类型学习笔记与总结

    Redis list 类型学习笔记与总结

    这篇文章主要介绍了Redis list 类型学习笔记与总结,本文着重讲解了关于List的一些常用方法,比如lpush 方法、lrange 方法、rpush 方法、linsert 方法、 lset 方法等,需要的朋友可以参考下
    2015-06-06
  • redis lua限流算法实现示例

    redis lua限流算法实现示例

    这篇文章主要为大家介绍了redis lua限流算法实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Redis Cluster Pipeline导致的死锁问题解决

    Redis Cluster Pipeline导致的死锁问题解决

    本文主要介绍了Redis Cluster Pipeline导致的死锁问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • redis setIfAbsent返回null的问题及解决

    redis setIfAbsent返回null的问题及解决

    这篇文章主要介绍了redis setIfAbsent返回null的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 记录一次并发情况下的redis导致服务假死的问题解决

    记录一次并发情况下的redis导致服务假死的问题解决

    由于Redis需要依赖于操作系统环境,如果系统资源受限,比如过量的进程在挤占系统资源、系统死锁等情况,本文主要介绍了记录一次并发情况下的redis导致服务假死的问题解决,感兴趣的可以了解一下
    2023-09-09
  • Redis Value过大问题(键值过大)

    Redis Value过大问题(键值过大)

    这篇文章主要介绍了Redis Value过大问题(键值过大),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • redis分布式锁的问题与解决方法

    redis分布式锁的问题与解决方法

    这篇文章主要给大家介绍了关于redis分布式锁的问题与解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Redis请求处理的流程分析

    Redis请求处理的流程分析

    这篇文章主要介绍了Redis 是如何进行请求处理,这篇文章介绍了整个 Redis 的请求处理模型到底是怎样的。从注册监听 fd 事件到执行命令,到最后将数据回写给客户端都做了个大概的分析,需要的朋友可以参考下
    2022-07-07
  • redis.conf中使用requirepass不生效的原因及解决方法

    redis.conf中使用requirepass不生效的原因及解决方法

    本文主要介绍了如何启用requirepass,以及启用requirepass为什么不会生效,从代码层面分析了不生效的原因,以及解决方法,需要的朋友可以参考下
    2023-07-07

最新评论