Redis是一個key-value的記憶體資料庫,value提供了String,List,Set,Sort Set,hash 5中資料結構。
命令和操作方法總結:自己一個個寫的,真麻煩啊,,,
一 Keys上的操作
1) DEL key [key...]
刪除多個key,不存在的key,則忽略
返回實際刪除了的key的個數
2) EXISTS key
返回1和0表示key是否存在
3) EXPIRE key seconds
設定key的存活時間
4) EXPIREAT key timestamp
UNIX timestamp(seconds since January 1, 1970)來設定存活期
5) KEYS pattern
返回match pattern的keys的列表
6) MOVE key db
在當前資料庫中將key移動到指定的db中
如果key在當前db中不存在或者指定的db中已有這個key,就不移動
返回1或者0表示是否moved
7) OBJECT REFCOUNT <key>
返回關聯到key上的引用的個數
OBJECT ENCODING <key>
返回key在資料庫內部的壓縮編碼方式
OBJECT IDLETIME <key>
返回key多久沒有被讀寫
在2.2.3版本後才可使用,目前裝的是2.0.2版本,不支援
8) PERSIST key
移除key上的時間限制屬性,使其永久存在
版本2.1.2後有效
9) RANDOMKEY
從資料庫隨機的返回一個key
10) RENAME key newkey
重新命名一個key,其他不變
11) RENAMENX key newkey
重新命名一個key,如果newkey已經存在時,命令失敗
12)SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
各種排序方式
13) TTL key
返回一個key還能在資料庫中存活多久(seconds)
如果key不存在或者沒有時間限制,返回-1
expire mykey可以設定一個key的存活時間
14) TYPE key
返回key的類型(string,list,set...)
二 Strings
1) APPEND key value
如果key不存在,建立一個新的key
如果key已經存在,在value後apend,改變了value的值
2) DECR key
key減1,對整型適用(或者以整型代表的字串)
對其他類型,返回錯誤
3) DECRBY key decrement
將key減少指定的這麼多
如果key不存在,從零開始減少
4) GET key
不解釋
5) GETRANGE key start end
返回substring,包含開始和結束索引
0代表第一個索引,-1最後一個索引
6) GETSET key value
對已經存在的key,設定其新的value,並返回老的value
如果key不是string類型,返回錯誤
7) INCR key
增加,同上
8) INCRBY key increment
同上,不解釋
9) MGET key [key ...]
返回多個值
10) MSET key value [key value ...]
同時設定多個key-value的值
11) MSETNX key value [key value ...]
當有一個key已經存在時,整條命令都不執行
12) SET key value
不解釋
13) SETEX key seconds value
設定一個key並為它設定時間
等同於下列命令:
SET mykey value
EXPIRE mykey seconds
14) SETNX key value
SET if Not eXists,當key不存在時設定一個新的key
否則,什麼也不做
15) SETRANGE key offset value
從已存在key的offeset索引處用value代替以前的值
版本2.1.8後有效
16) STRLEN key
不解釋
三 Hashes
1) HDEL key field [field ...]
刪除hash表(key)中的多個域
對不存在的域忽略,返回實際刪除的域的個數
2) HEXISTS key field
hash表(key)中是否存在域field
3) HGET key field
從hash表中得到域field的值
4) HGETALL key
返回hash表中的所有域和它對應的值
5) HINCRBY key field increment
將hash表中指定域增加一個值
6) HKEYS key
返回所有的域
7) HLEN key
返回hash表的長度
8) HMGET key field [field ...]
返回hash表多個域的值
9) HMSET key field value [field value ...]
同上
10) HSET key field value
設定一對值
11) HSETNX key field value
僅當域不存在時設定
12) HVALS key
返回所有的values
四 Lists
1) BLPOP key [key ...] timeout
Remove and get the first element in a list, or block until one is available
Lpop的blocking版本,在timeout時間時間內,pop第一個非空的key中的第一個元素(元素連同它所在的key一起返回)
可以允許key中有空值,它會去找第一個非空的key
如果都空,blocking發生作用,它會等待直到有一個key經過了lpush或rpush非空
2) BRPOP key [key ...] timeout
Remove and get the last element in a list, or block until one is available
最後一個。同上
3) BRPOPLPUSH source destination timeout
Pop a value from a list, push it to another list and return it; or block until one is available
4) LINDEX key index
用索引擷取值(後進列表的索引在前)
5) LINSERT key BEFORE|AFTER pivot value
將value插入在pivot之前或者之後
6) LLEN key
不解釋
7) LPOP key
pop並返回第一個值(索引0的值)
8) LPUSH key value [value ...]
不解釋
9) LPUSHX key value
同上一條的區別是,只有當key已經存在並非空時,才push一個value
10) LRANGE key start stop
返回索引從start到stop的值
11) LREM key count value
刪除|count|個value,count為正表示從左往右數,為負表示從右往左數
0表示刪除全部值為value的項
傳回值是實際刪除的個數
12) LSET key index value
要設定的index範圍必須已存在
13) LTRIM key start stop
trim一個list,保留start到stop之間的
14) RPOP key
pop最後一個key
15) RPOPLPUSH source destination
pop最後一個元素,append到另一個list裡,並返回這個值
16) RPUSH key value [value ...]
加到列表最後
17) RPUSHX key value
僅當列表已經非空時,加到列表最後
五 Sets
1) SADD key member
如果member已存在,命令失效. 注意是集合,元素不能重複
2) SCARD key
返回集合中元素的個數
3) SDIFF key [key ...]
差集,在第一個集合中存在,但在其他集合中都不存在的元素
4) SDIFFSTORE destination key [key ...]
同上,只是將返回的集合存在集合 destination中
5) SINTER key [key ...]
交集
6) SINTERSTORE destination key [key ...]
同上
7) SISMEMBER key member
是否屬於一個集合
8) SMEMBERS key
返回集合所有元素
9) SMOVE source destination member
從一個set裡將元素移動到另一個set裡
10) SPOP key
pop一個隨進的元素,因為集合是無序的
11) SRANDMEMBER key
返回一個隨機的元素
12) SREM key member [member ...]
移除一個或多個元素
不在的元素忽略
13) SUNION key [key ...]
並集
14) SUNIONSTORE destination key [key ...]
同上
六 Sorted Sets
1) ZADD key score member [score] [member]
增加一個或多個元素,如果該元素已經存在,更新它的socre值
雖然有序集合有序,但它也是集合,不能重複元素,添加重複元素只會
更新原有元素的score值
2) ZCARD key
元素個數
3) ZCOUNT key min max
SCORE值在min和max之間的元素的個數
4) ZINCRBY key increment member
給有序集合key裡面的元素member增加increment
若key不存在,建立一個key
若member不存在,建立一個member,從0開始增加
僅當key存在但類型不是有序集合時,出錯
5) ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
nubberkeys指定要求交集的集合的個數
將nubberkeys個集合求交集,結果放在集合destination中
(如果des已存在,覆蓋它)
參數[WEIGHTS weight [weight ...]]
指定求交集集合的權重,在計算新的score時使用
參數[AGGREGATE SUM|MIN|MAX]
當兩個集合中有同一個名字的元素,但score不同時,指定取哪一個score
的元素
6) ZRANGE key start stop [WITHSCORES]
索引start到stop處的元素
7) ZRANGEBYSCORE key min max [WITHSCORES]
score在min到max之間的元素
8) ZRANK key member
返回menber的索引(score從低到高升序排列)
9) ZREM key member [member ...]
不解釋
10) ZREMRANGEBYRANK key start stop
不解釋
11) ZREMRANGEBYSCORE key min max
不解釋
12) ZREVRANGE key start stop [WITHSCORES]
返回索引之間的元素
13) ZREVRANGEBYSCORE key max min [WITHSCORES]
同上,返回score區間內的
14) ZREVRANK key member
同8),score降序
15) ZSCORE key member
不解釋
16) ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
求並集,其他同5)求交集