redis 命令

本文介绍了Redis中的五种基本数据类型:String、List、Set、Sorted Set和Hash的特点及应用场景,并详细解释了每种类型的基本操作命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:http://blog.youkuaiyun.com/wuwei_it/article/details/17138069   http://blog.youkuaiyun.com/yima1006/article/details/9417065 

http://blog.youkuaiyun.com/yima1006/article/details/9397891 

Redis 命令参考:https://redis.readthedocs.org/en/latest/

一、常用数据类型简介:

      redis常用五种数据类型:string,hash,list,set,zset(sorted set).

1.String类型

String是最简单的类型,一个key对应一个value

String类型的数据最大1G。
String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby、decr、decrby),这种情况下,该integer的值限制在64位有符号数。

在list、set和zset中包含的独立的元素类型都是Redis String类型。

2.List类型

链表类型,主要功能是push、pop、获取一个范围的所有值等。其中的key可以理解为链表的名字。

在Redis中,list就是Redis String的列表,按照插入顺序排序。比如使用LPUSH命令在list头插入一个元素,使用RPUSH命令在list的尾插入一个元素。当这两个命令之一作用于一个空的key时,一个新的list就创建出来了。

List的最大长度是2^32-1个元素。

3.Set类型

集合,和数学中的集合概念相似。操作中的key理解为集合的名字。

在Redis中,set就是Redis String的无序集合,不允许有重复元素。

Set的最大元素数是2^32-1。

Redis中对set的操作还有交集、并集、差集等。

4.ZSet(Sorted Set)类型

Zset是set的一个升级版本,在set的基础上增加了一个顺序属性,这一属性在添加修改元素时可以指定,每次指定后zset会自动安装指定值重新调整顺序。可以理解为一张表,一列存value,一列存顺序。操作中的key理解为zset的名字。

Zset的最大元素数是2^32-1。

对于已经有序的zset,仍然可以使用SORT命令,通过指定ASC|DESC参数对其进行排序。

5.hash类型

hash是最接近关系数据库结构的数据类型,可以将数据库一条记录或程序中一个对象转换成hashmap存放在redis中。


Redis Set类型数据常用命令参考

1 sadd 命令:

                sadd   <key>    <member>  [<member>...]   将一个或多个member加入到key中,如果已经存在,则会被忽略。如果key不存在,则会默认创建该集合。如果key不是集合类型,返回错误。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> sadd amimal 'cat' 'dog' 'pig'     # 添加多个元素  
(integer) 3  
redis 127.0.0.1:6379> sadd amimal 'monkey' 'cat'         # 添加重复的元素被忽略  
(integer) 1  
redis 127.0.0.1:6379>  </span>

2 smembers 命令:

                smembers   <key>    返回key中所有的成员列表。如果key不存在,则返回空。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> smembers amimal  
1) "monkey"  
2) "pig"  
3) "cat"  
4) "dog"  
redis 127.0.0.1:6379> smembers products  
(empty list or set)  
redis 127.0.0.1:6379> </span>

 3 srem 命令:

               srem  <key>  <member> [<member>...]   移除key中的一个或者多个member元素,如果不存在,则会被忽略。如果key不存在,则返回空。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> srem amimal 'dog'        # 移除已存在的元素  
(integer) 1  
redis 127.0.0.1:6379> smembers amimal  
1) "pig"  
2) "cat"  
3) "monkey"  
redis 127.0.0.1:6379> srem amimal 'chicken'   # 移除不存在的元数  
(integer) 0  
redis 127.0.0.1:6379> smembers amimal  
1) "monkey"  
2) "cat"  
3) "pig" </span>
还有其他命令请参考——redis命令参考


Redis Hash类型数据常用命令总结

Hash是一种数据结构,一般翻译做“散列”,也有直接音译为“哈希”。Redis  hash  是一个string类型的field和value的映射表。它特别适合用于存储对象。同将对象的每个字段存成单个string类型,存储为hash类型会占用更少的内存,并且方便的存取整个对象。

下面是关于hash类型存储的一些常用方法(命令):

1,hset 命令:

hset   <key>   <field>    <value>     将hash表key中的field域设置为值value。如果field值不存在,操作成功后返回1,如果field值已经存在,则覆盖原来的值,成功后返回0。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> hset user name  'zhangsan'          # 设置值为zhangsan  
(integer) 1  
redis 127.0.0.1:6379> hset user name  'lisi'              # 将值覆盖为lisi  
(integer) 0  
redis 127.0.0.1:6379>  </span>

2,hget  命令:

hget  <key>   <field>   返回哈希表 key 中给定域 field 的值

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> hget user name  
"lisi"</span>
3,hsetnx 命令:

hsetnx    <key>  <field>   <value>    当且紧当filed域不存在时,设置值为value。如果该域不存在,返回1,如果该域已经存在,则不会执行操作,且返回0。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> hget user name  
"zhangsna"  
redis 127.0.0.1:6379> hsetnx user name 'lisi'  
(integer) 0                                          # 将name域的值设置为lisi时操作失败,因为name域已经存在  
redis 127.0.0.1:6379> hsetnx user age  22<span style="white-space:pre">  </span>     # 将age域的值设置为22,操作成功,应为age域不存在  
(integer) 1  
redis 127.0.0.1:6379> hget user name                 # 取出name的值,并没有被修改  
"zhangsna"  
redis 127.0.0.1:6379> hget user age  
"22"  
redis 127.0.0.1:6379> </span><span style="font-family:Arial;"> </span>

4,hmset 命令:

hmset    <key>   <field>   <value>  [<field>   <value>...]  同时将多个“域-值”对存储在key键中,如果key不存在会自动创建,如果field已经存在,则会覆盖原来的值。操作成功后返回值OK。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> hmset product name 'computer' price '3200' size '14inch'  
OK</span>
5,hmget 命令:

hmget   <key>   <field>  [<field>....]  返回hash表key的一个或者多个域值。如果给定的域名称在此hash表中不存在,则返回nil。

<span style="font-family:Microsoft YaHei;">redis 127.0.0.1:6379> hmget product name price size contact  
1) "computer"           # name的值  
2) "3200"               # price的值  
3) "14inch"             # size的值  
4) (nil)                # contact的值在hash表中不存在,返回nil</span>

至于string,list,zset的操作r edis命令参考




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值