Redis 基本命令大全 二(list 、 set、 sorted set)

接上文: Redis 基本命令大全 一(key,string,list)

四 Redis 哈希(Hash)

4.1hset

HSET 命令用于为hash表中的字段赋值
如果hash表不存在,那么一个新的hash表将被创建,并执行hset操作
如果key已经存在hash表中,那么将执行覆盖操作

语法

hset keyName field value

返回值:

	如果field是hash表中新建的一个字段,并设置成功返回1
	如果field已经存在,并且value覆盖成功,返回0

实例

127.0.0.1:6379[3]> hset mymap mykey chinese  //mymap是这个map的名字,mykey是这个map中field的名字  chinese 是这个field的值
(integer) 1
127.0.0.1:6379[3]> hset mymap mykey english  
(integer) 0		//这里english覆盖了chinese 所以返回0
127.0.0.1:6379[3]> hset mymap mykey2 france  //这是mymap中的另一个字段  mykey2  一个hash可以存多个field- value 键值对
(integer) 1

4.2 hkeys

HKEYS 命令用于获取hash表中所有的字段名

语法

hkeys key

返回值:

返回hash表中所有字段field的列表

实例

127.0.0.1:6379[3]> hkeys mymap
1) "mykey"
2) "mykey2"

4.3 hvals

HVALS 命令用于获取hash表中所有的value值

语法

hvals key

返回值:

返回hash表中所有value值的列表

实例

127.0.0.1:6379[3]> HVALS mymap
1) "english"
2) "france"

4.4 hmset

HMSET 命令用于同时将多个field- value对设置到hash表中
如果hash表不存在,那么一个新的hash表将被创建,并执行hmset操作
如果field已经存在hash表中,那么将执行覆盖操作

语法

hmset keyName field1 value field2 value2 ...

返回值:

	OK

实例

127.0.0.1:6379[3]> hmset country ch chinese en english
OK

4.5 hsetnx

HSETNX 命令用于为hash表中不存在的key赋值
如果hash表不存在,那么一个新的hash表将被创建,并执行hset操作
如果key已经存在hash表中,操作无效

语法

hsetnx keyName field value

返回值:

	设置成功返回1
	field已经存在,操作无效返回0

实例

127.0.0.1:6379[3]> hsetnx country us america
(integer) 1
127.0.0.1:6379[3]> hsetnx country us unitedstates
(integer) 0   //us已经存在,操作无效返回0   
//reids 命令中尾部带有nx 的,比如***nx,setnx hsetnx 这样的命令都是希望为新的key赋值,而不是覆盖原有的值

4.6 hget

HGET 命令用于获取hash表中指定字段的值

语法

hget keyName fieldName

返回值:

	返回指定field的值
	如果field不存在,返回nil

实例

127.0.0.1:6379[3]> hget country ch
"chinese"

4.7 hmget

HMGET 命令用于获取hash表中一个或多个字段的值
如果指定字段不存在,返回一个nil值

语法

hmget keyName fieldName1 fieldName2 ...

返回值:

	返回一个报错指定字段的值的列表

实例

127.0.0.1:6379[3]> hmget country ch en fa
1) "chinese"
2) "english"
3) (nil)  //fa不存在  返回nil

4.8 hgetall

HGETALL 命令用于获取hash表中所有字段的值

语法

hgetall keyName

返回值:

	返回hash表中所有的字段和值

实例

127.0.0.1:6379[3]> hgetall country
1) "ch"          //这里是字段ch
2) "chinese"	//这里是ch 的value
3) "en"			//这里是字段en
4) "english"	//这里是en的value
5) "us"			//奇数位出现的字段名
6) "america"	//偶数位出现的是字段值

4.9 hesists

HESISTS 命令用于查看hsah表中指定的字段是否存在

语法

hesists keyName field

返回值:

	字段存在返回1
	字段不存在返回0

实例

127.0.0.1:6379[3]> hgetall country
1) "ch"          //这里是字段ch
2) "chinese"	//这里是ch 的value
3) "en"			//这里是字段en
4) "english"	//这里是en的value
5) "us"			//奇数位出现的字段名
6) "america"	//偶数位出现的是字段值

4.10 hincrby

HINCRBY 命令用于为hash表中的字段增加指定的增量值
增量值可以为负数,就相当于减法操作,但只能为整数
如果key不存在一个新的hash表将被创建并执行hincrby命令
如果field不存在,字段的初始值会为0

语法

hincrby key field num

返回值:

	执行incrby命令后字段的值

实例

127.0.0.1:6379[3]> hincrby info age 20
(integer) 20
127.0.0.1:6379[3]> hincrby info age 1
(integer) 21

4.11 hincrbyfloat

HINCRBY 命令用于为hash表中的字段增加指定的浮点数增量值
增量值可以为负数,就相当于减法操作
如果key不存在一个新的hash表将被创建并执行hincrbyfloat命令
如果field不存在,字段的初始值会为0

语法

hincrbyfloat key field num

返回值:

	执行incrbyfloat命令后字段的值

实例

127.0.0.1:6379[3]> HINCRBYFLOAT info age 0.5
"21.5"    //incrbyfloat命令与incrby命令相似,只不过可以操作浮点数

五 Redis 集合(Set)

reids中set和list的功能相似,list允许重复,set不允许重复。另外list是有下标的,set并没有

sadd

SADD 命令用于将一个或多个成员加入到集合中,已存在于集合中的元素将被忽略

语法

sadd kyeName member1 member2 ...

返回值:

	被添加到集合中的新元素的数量,不包括没有加入成功的

实例

127.0.0.1:6379[3]> sadd myset zhangsan lisi wangwu zhaoliu zhangsan
(integer) 4		//返回值为4  ,只有zhangsan lisi wangwu zhaoliu成功了 最后一个zhangsan因为和第一个张三重复了,所以没有加入成功

srem

SREM 命令用于移除集合中一个或多个成员,未存在集合中的元素将被忽略

语法

srem keyName member1 member2 ...

返回值:

	被移除元素的数量,不包括被忽略的

实例

127.0.0.1:6379[3]> srem myset zhaoliu xiaoming
(integer) 1		//只有zhaoliu移除成功了,所以返回1

smembers

SMEMBERS 命令用于返回集合中所有的元素

语法

smembers keyName

返回值:

	集合中的所有成员
	不存在的集合被视为空集合

实例

127.0.0.1:6379[3]> smembers myset
1) "zhangsan"
2) "zhaoliu"
3) "wangwu"
4) "lisi"

srandmember

SRANDMEMBER 命令用于返回集合中一个随机的元素
从 Redis 2.6 版本开始, Srandmember 命令接受可选的 count 参数:
count为正数时那么返回一个包含count个元素的集合,如果count大于数组长度,那么返回整个数组
count为负数时,返回一个数组数组中的元素可能重复,数组长度为count的绝对值

语法

srandmember keyName [count]

返回值:

	只提供一个参数时,随机返回集合中的一个元素
	提供count参数时返回一个数组

实例

127.0.0.1:6379[3]> SRANDMEMBER myset
"zhangsan"			//不提供count参数,随机返回一个元素

127.0.0.1:6379[3]> SRANDMEMBER myset 2
1) "wangwu"
2) "lisi"			//提供count参数,返回count个元素

127.0.0.1:6379[3]> SRANDMEMBER myset -3
1) "wangwu"
2) "zhaoliu"
3) "wangwu"			//count为负数,可能出现重复

smove

SMOVE 命令用于将指定元素从source集合移动到destination集合
smove时原子操作
如果source集合不存在或者member元素不存在,smove命令不执行任何操作,返回0
如果destination集合中包含member元素,smove命令只是简单的删除source集合中的member元素

语法

smove source destination member

返回值:

	如果元素移除成功,返回1
	如果source集合中不存在member,或者不存在source集合,操作无效,返回0

实例

127.0.0.1:6379[3]> smove myset myset2 lisi
(integer) 1

sismember

SISMEMBER 命令用于判断元素是否存在于集合中

语法

sismember keyName member

返回值:

	如果元素存在于集合中,返回1
	如果集合不存在,或者元素不存在于集合中,返回0

实例

127.0.0.1:6379[3]> sismember myset zhangsan
(integer) 1
127.0.0.1:6379[3]> sismember myset chenzhen
(integer) 0

spop

SPOP 命令用于移除并返回一个集合中的随机元素

语法

spop keyName

返回值:

	返回被移除的元素
	如果集合不存在或者集合为空,返回nil

实例

127.0.0.1:6379[3]> spop myset
"zhangsan"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值