1. 程式人生 > >Redis[三] @Hash 雜湊

Redis[三] @Hash 雜湊

Redis的雜湊值是字串欄位和字串值之間的對映,所以他們是表示物件的完美資料型別

在Redis中的雜湊值,可儲存超過400十億鍵值對。

redis 提供了2套操縱 一種是批量 一種是非批量

假設需要儲存一個使用者資訊

批量操作

定義一個key為user1的hash 包含屬性 name=xstao、age=22、sex=1、password=123 並獲取user1中name的屬性值

redis 127.0.0.1:6379[1]> hmset user1 name xstao age 22 sex 1 password 123OKredis 127.0.0.1:6379[1]> hmget user1 name1) "xstao"

獲取user1的全部key 、 value、全部的key value

redis 127.0.0.1:6379[1]> hgetall user11) "name"2) "xstao"3) "age"4) "22"5) "sex"6) "1"7) "password"8) "123"redis 127.0.0.1:6379[1]> hkeys user11) "name"2) "age"3) "sex"4) "password"redis 127.0.0.1:6379[1]> hvals user11) "xstao"2) "22"3) "1"4) "123"

獲取user1這個hash的欄位數量

redis 127.0.0.1:6379[1]> hlen user1(integer) 4

為hash user1新增一個欄位 並檢視新增後的資料結構

redis 127.0.0.1:6379[1]> hmset user1 ext1 testOKredis 127.0.0.1:6379[1]> hgetall user1 1) "name" 2) "xstao" 3) "age" 4) "22" 5) "sex" 6) "1" 7) "password" 8) "123" 9) "ext1"10) "test"

更新key為user1 sex的值為0 並返回賦值成功後的新值

redis 127.0.0.1:6379[1]> hset user1 sex 0(integer) 0

非批量

從命令格式上來看批量都加了m 而非批量都沒有 比如批量hmset 非批量 hset

定義一個雜湊表user2 第一次執行成功 ,第二次執行批量新增失敗了。因為hset僅支援單個新增

redis 127.0.0.1:6379[1]> hset user2 name abc(integer) 1redis 127.0.0.1:6379[1]> hset user3 name abc age 2(error) ERR wrong number of arguments for 'hset' commandredis 127.0.0.1:6379[1]>

其他一些常用命令命令

//判斷user1中name是否存在 返回1表示已存在 返回0標識沒有這個name欄位keyredis 127.0.0.1:6379[1]> hexists user1 name(integer) 1//針對user1 中age(年齡)欄位自增2 返回自增後的值redis 127.0.0.1:6379[1]> hincrby user1 age 2(integer) 24//針對user1 中age(年齡)欄位浮點數自增2.5 返回自增後的值redis 127.0.0.1:6379[1]> hincrbyfloat user1 age 2.5"28.5"

笑笑笑技術圈