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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章