Redis 數據獲取命令
GET
GET key
起始版本:1.0.0
返回key的value。如果key不存在,返回特殊值nil。
如果key的value不是string,就返回錯誤,因為GET只處理string類型的values。
返回值
simple-string-reply:key 對應的value,或者nil(key不存在時)
redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
OK
redis> GET mykey
"Hello"
SET
SET key new_value
起始版本:1.0.0
將鍵key設定為指定的“字符串”值。
如果 key 已經保存了一個值,那么這個操作會直接覆蓋原來的值,並且忽略原始類型。
當set命令執行成功之后,之前設置的過期時間都將失效
redis> SET mykey "Hello"
OK
redis> GET mykey
"Hello"
HGET
HGET key field
起始版本:2.0.0
返回 key 指定的哈希集中該字段所關聯的值
返回值
bulk-string-reply:該字段所關聯的值。當字段不存在或者 key 不存在時返回nil。
redis> HSET myhash field1 "foo"
(integer) 1
redis> HGET myhash field1
"foo"
redis> HGET myhash field2
(nil)
HSET
HSET key field value
起始版本:2.0.0
設置 key 指定的哈希集中指定字段的值。
如果 key 指定的哈希集不存在,會創建一個新的哈希集並與 key 關聯。
如果字段在哈希集中存在,它將被重寫。
返回值
integer-reply:含義如下
1如果field是一個新的字段
0如果field原來在map里面已經存在
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HGET myhash field1
"Hello"
層級關系、目錄形式數據
使用 redis 存儲數據的時候,有時候為了查看的方便,通常會有層級或者說是目錄,
這時候我們在set的時候,需要將key值使用 “:” 的符號來區分層級關系,
比如:set("a:b", "123"),
那么在 redis 中就是 a 目錄下的 key值 為 b 的 value 為 123。
SET("a:b", "123")
HSET "a:b" c "Hello"
GET a:b
HGET a:b c
查詢數據中遇到的問題
WRONGTYPE Operation against a key holding the wrong kind of value
- 這個錯誤說明了用的redis方法與redis服務器中存儲數據的類型存在沖突。
例如:數據庫中有一個key的數據存儲的是Hash類型的,但是使用redis執行數據操作的時候卻使用了非Hash的操作方法。此時就會報
WRONGTYPE Operation against a key holding the wrong kind of value這個錯誤!
# 先執行一條如下命令:
redis 127.0.0.1:6379>type key
# 此時會顯示出該key存儲在現在redis服務器中的類型,例如:
redis 127.0.0.1:6379>hash
# 則表示key為以hash類型存儲在redis服務器里的,此時操作這個數據就必須使用hset、hget等操作方法。
如果是zset如下:
redis 127.0.0.1:6379>zset
則表示數據類型為Sorted Sets的。此時就需要使用zadd、zrange等操作方法,否則就會報WRONGTYPE Operation against a key holding the wrong kind of value這個錯誤!
參考文檔
https://www.cnblogs.com/jeffen/p/6091385.html
https://blog.csdn.net/tonvchong/article/details/11526237
http://redis.cn/commands.html