redis常用命令


全局操作:
#查看所有key
keys *  或  keys "*"

#查看匹配前綴的keys
keys "miao*"

#清空redis
flushdb

#隨機取出一個key
randomkey

#查看key的類型
type key

#查看數據庫中key的數量
dbsize

#查看服務器信息
info

#查看redis正在做什么
monitor

#查看日志

slowlog get
slowlog get 10

1.redis是key-value存儲的,放在內存中,並在磁盤持久化的數據結構存儲系統,它可以用作數據庫、緩存和消息中間件。
通過set key value來存儲,通過get key來獲取值
#設置key的值,若存在則覆蓋
set key value

#若存在則不操作
setnx key value

#設置這些key的值,若存在則覆蓋
MSET key1 value1 key2 value2 ... keyN valueN

#同mset,但如果其中一個key已經存在了,則都不設置。這些操作都是原子的
MSETNX key1 value1 key2 value2 ... keyN valueN

#向key的字符串追加拼接。
append key value

#獲取key對應的值
get key

#獲取這些key對應的值
MGET key1 key2 ... keyN

#查看是否存在該元素
EXISTS key

#獲取該元素的值,並給該元素設置新值。(通常和incr搭配使用,比如一個mycount一直incr,然后達到某些情況需要清零,清零之前需要知道mycount的值)
GETSET key value

#刪除元素
del key

#重命名
RENAME oldkey newkey

2.redis提供原子自增操作incr,用來防止多線程並發出現數據錯誤。
#原子的+1
incr key

#原子的-1
DECR key

#原子的-integer
DECRBY key integer

#原子的+integer
INCRBY key integer

3.刪除操作:del.若數據不存在返回(nil)

4.redis可以定時存儲,即設置幾秒后刪除該變量

#設置該元素多少秒后失效
EXPIRE key seconds

#設置該元素多少毫秒后失效
PEXPIRE key milliseconds

#查看還可以存活多少秒,-2表示key不存在,-1表示永久存儲
TTL key

#等價於先設置變量再設置超時,即在緩存中使用:存儲的同時設置超時時間,這個操作是原子的
SETEX key seconds value

#取消過期時間
persist key

#unix時間戳,1970.1.1之后,這個絕對時間,將在這個時間刪除key。expireat pages:about 1356933600:在2012年12月31日上午12點刪除掉關鍵字
expireat key 時間戳

#設置key的值為value,並在timeout秒后失效,key將被刪除
SETEX KEY_NAME TIMEOUT VALUE

5.存儲有序隊列:list

#向keyList添加元素,向后加,r表示右邊
rpush keyList value

#向keyList左邊添加元素
lpush keyList value

#獲取keyList的元素,用兩端的索引取出子集,endIndex=-1則表示全部取出
lrange keyList beginIndex endIndex

#獲取keyList的長度大小
llen keyList

#取出並移除keyList第一個元素,左邊的元素
lpop keyList

#取出並移除keyList最后一個元素,右邊的元素
rpop keyList

#獲取該索引下的元素
LINDEX key index

#刪除count個value(count為正數,從頭開始,刪除count個value元素;count為負,則從尾部向頭刪除|count|個value元素;count為0,則所有的元素為value的都刪除)
lrem key count value

#設置索引為index下的元素為value.超出索引范圍報錯
LSET key index value

#清空索引在start 和end之外的元素,索引從0開始,兩端保留,兩端之外的清空
LTRIM key start end

#源隊列srckey,目標隊列dstkey,將srckey的最后一個移除,並放到dstkey的第一個
RPOPLPUSH srckey dstkey

6.無序且唯一集合set
和java中list與set的區別一樣。這里的set無序且值唯一。

#向set添加元素
sadd key value

#從set中移除元素
srem key value

#取出所有set元素
smembers key

#查看value是否存在set中
SISMEMBER key value

#將所有key合並后取出來,相同的值只取一次
SUNION key1 key2 ... keyN

#獲取set中元素的個數
scard key

#隨機取出一個
SRANDMEMBER key

#獲取第一set中不存在后面幾個set里的元素
SDIFF key1 key2 ... keyN

#和sdiff相同,獲取key1中不存在其他key里的元素,但要存儲到dstkey中
SDIFFSTORE dstkey key1 key2 ... keyN

#取出這些set的交集
SINTER key1 key2 ... keyN

#取出這些key的交集並存儲到dstkey
SINTERSTORE dstkey key1 key2 ... keyN

#將元素member從srckey中轉移到dstkey中,這個操作是原子的
SMOVE srckey dstkey member

7.有序集合sorted set
和set一樣,唯一。但多了個score用來排序。所以命令又像list一樣

#向有序set中添加元素member,其中score為分數,默認升序
ZADD key score member

#獲取按score從低到高索引范圍內的元素,索引可以是負數,-1表示最后一個,-2表示倒數第二個,即從后往前。withscores可選,表示獲取包括分數
ZRANGE key start end [WITHSCORES]

#同上,但score從高到低排序
ZREVRANGE key start end [WITHSCORES]

#獲取score在min和max范圍內的元素的個數
ZCOUNT key min max

#獲取集合中元素的個數
ZCARD key

#根據元素,score原子增加increment
ZINCRBY key increment member

#清空集合內的score位於min和max之間的元素
ZREMRANGEBYSCORE key min max

#獲取元素的索引(照score從低到高排列)
ZRANK key member

#移除集合中的該元素
ZREM key member

#獲取該元素的score
ZSCORE key member

8.對象存儲Hashes

#key是對象名,field是屬性,value是值
HSET key field value

#同時設置多個屬性
HMSET key field value [field value ...]

#獲取該對象的該屬性
HGET key field

#獲取多個屬性值
HMGET key field value [field value ...]

#獲取對象的所有信息
HGETALL key

#獲取對象的所有屬性
HKEYS key

#獲取對象的所有屬性值
HVALS key

#刪除對象的該屬性
HDEL key field

#查看對象是否存在該屬性
HEXISTS key field

#原子自增操作,只能是integer的屬性值可以使用
HINCRBY key field value

#獲取屬性的個數
HLEN key

9.sort排序
返回或保存給定列表、集合、有序集合key中經過排序的元素。排序默認以數字作為對象,值被解釋為雙精度浮點數,然后進行比較。
9.1.最簡單的sort使用方法是sort key和sort key desc。

#返回鍵值從小到大排序的結果
sort key

#返回鍵值從大到小排序的結果
sort key desc

9.2.使用alpha修飾符對字符串進行排序
因為sort命令默認排序對象為數字,當需要對字符串進行排序時,需要顯式地在sort命令之后添加alpha修飾符。
sort key alpha
sort key alpha desc

9.3.使用limit修飾符限制返回結果
排序之后返回元素的數量可以通過limit修飾符進行限制,修飾符接受offset和count兩個參數。offset:指定要跳過的元素數量,即起始位置。count:指定跳過offset個指定的元素之后,要返回多少個對象。
# 返回列表中最小的5個值
sort key limit 0 5

9.4.使用外部key進行排序
可以使用外部 key 的數據作為權重,代替默認的直接對比鍵值的方式來進行排序。
#通過使用by選項,可以讓key按其他鍵的元素來排序
示例: sort uid by user_level_*

#使用get選項,可以根據排序的結果來取出相應的鍵值
示例:sort uid get user_name_*

#可以同時使用多個get選項,獲取多個外部鍵的值
示例:sort uid get user_level_* get user_name_*

#get有一個額外的參數規則,那就是可以用#獲取被排序鍵的值
示例:sort uid get # get user_level_* get user_name_*

#通過將一個不存在的鍵作為參數傳給 by 選項, 可以讓 sort 跳過排序操作,直接返回結果
示例:sort uid by not-exists-key

10.事務
redis內置了很多原子操作的命令,比如incr,getset等,但實際中我們希望將一組命令原子的執行,這時候就需要用到事物。做法如下:
a.使用關鍵字multi
b.輸入你想要的命令組合
c.輸入exec來執行,或discard來放棄

參考地址:

http://www.cnblogs.com/woshimrf/p/5198361.html

http://doc.redisfans.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM