redis 操作數據
# 原創,轉載請留言聯系
先放一波 Redis命令文檔:http://doc.redisfans.com/
redis 可以存儲5中數據結構:
字符串string
哈希hash
列表list
集合set
有序集合zset
下面列出一點常用操作!
-
字符串String
字符串類型是 Redis 中最為基礎的數據存儲類型,它在 Redis 中是二進制安全的,這便意味著該類型可以接受任何格式的數據,如JPEG圖像數據或Json對象描述信息等。在Redis中字符串類型的Value最多可以容納的數據長度是512M。
1.設置單個鍵值
set key value
例如:set name chichung
2.設置多個鍵值
mset key1 value1 key2 value2...
例如:mset name chichung gender man
# 註:m就是muti,多個
3.追加字符
比如你想插入name:chichung,不小心打漏了個g,怎麽操作呢?
set name chichun
append name g
4.查看單個值
get key
例如:get name
5.查看多個值
mget key1 key2 key3...
例如:mget name gender
6.修改一個鍵的值
重新設置一個同名的鍵就行了。
set name zhicong
7.設置一個鍵值對,並讓它過了某段時間自動刪除
setex key seconds value
例如:setex name 10 chichung
表示過了10秒後刪除 name:chichung
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
哈希hash
hash?於存儲對象,對象的結構為屬性、值 # 就是python中字典的結構
值的類型為string # 由於值的類型是string,所以不能儲存字典的嵌套
1.添加單個屬性
hset key field value
例如:設置 info 的屬性 name 為 chichung
hset info name chichung
2.添加多個屬性
hmset key field1 value1 field2 value2...
例如:hmset info name chichung gender man
3.查看所有某個鍵的的屬性
hkeys key
例如:keys info
會返回屬性名,name,gender
4.查看一個屬性的值
hget key field
例如:hget info name
5.查看多個屬性的值
hmget key1 key2...
例如:hmget info name gender
6.查看所有屬性的值
hvals key
例如:hvals info
7.刪除屬性和值
hdel key field1 field2...
例如:hdel info gender
刪除 info 鍵的屬性 gender 和 gender 屬性的值 man
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
列表list
列表的元素類型為string
按照插?順序排序
1.在左側插入數據
lpush key value1 value2 ...
例如:lpush ele a b c
那麽他在 redis 數據庫的排序是 c b a
2.在右側插入數據
rpush key value1 value2...
3.從指定元素的前後插入數據
linsert key before 現有元素 新元素
rinsert key after 現有元素 新元素
例如:linsert ele before a 0
在 a 元素的前面插入 0
4.查看列表的元素
lrange key start_index end_index
例如:查看列表的全部元素
lrange ele 0 -1
5.修改指定元素的值
lset key index value
例如,把下標是3的元素修改為 apple
lset ele 3 apple
6.從左邊開始,刪除 n 個相同的元素
lrem key n value
例如,從左邊開始,刪除兩個 a
lrem ele 2 a
7.從右邊開始,刪除 n 個相同的元素
lrem key -n value
例如,從右邊開始,刪除兩個 b
lrem ele -2 b
8.刪除列表中全部的某個元素
lrem key 0 value
例如,刪除列表中全部的 c
lrem ele 0 c
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
無序集合set
元素為string類型
元素具有唯?性,不重復
說明:對於集合沒有修改操作
1.添加元素
sadd key member1 member2...
例如:sadd ele a b c d e f g
2.獲取所有元素
smembers key
例如:smembers ele
3.刪除指定元素
srem key value
例如:srem ele g
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
有序集合zset
元素為string類型
元素具有唯?性,不重復
每個元素都會關聯?個double類型的score,表示權重,通過權重將元素從?到?排序
說明:沒有修改操作
1.添加元素
zadd key score1 member1 score2 member2 ...
例如:zadd ele 1 a 2 b 4 d 3 c
那麽他的順序是a b c d
2.獲取指定範圍內的元素
1.根據下標
zrange key start_index end_index
例如:獲取有序集合的全部元素
zrange ele 0 -1
2.根據權重
zrangebrscore key min max
例如,獲取權重是2-3之間的全部元素
zrangebyscore ele 2 3
3.返回某個元素的權重
zscore key member
例如,獲取 c 的權重值
zscore ele c
4.刪除有序集合的指定元素
zrem key member1 member2...
例如,刪除有序集合的 c d
zrem ele c d
5.刪除權重值之間的元素
zremrangebyscore key min max
例如,刪除有序集合中權重為2-3的元素
zremrangebyscore ele 2 3
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
鍵命令
1.判斷鍵是否存在
exists key
2.查看鍵對應的值的類型
type key
3.刪除鍵值
del key1 key2...(寫一個鍵就是刪除一個)
例如:del name gender
4.讓已經存在的一個鍵對,過了某段時間自動刪除
expire key seconds
例如:expire name 10
表示10秒後刪除 name 鍵
5.查看鍵對還有幾秒刪除
ttl key
例如:ttl name
註意:如果 key 是設置了倒計時刪除的,ttl 命令可以看到它的剩余時間,結束後輸出內容為-2!
如果 key 本來就沒有設置倒計時刪除的,ttl key 永遠都是-1。
redis 操作數據