全局操作:
#查看所有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/
