當redis環境搭建結束後,接下來須要掌握並瞭解redis的一些相關命令,本篇文章主要從實際操做的層面來與你們分享redis基本命令,正則表達式
具體包括:Redis五大基本類型命令(Strings,Lists,Hashes,Sets和Sort Sets)和Keys相關命令。redis
1. SET數據庫
SET 命令用於建立K/V,在建立K/V時,能夠添加一些約束條件,如過時時間緩存
定義:SET key value[expiration EX seconds|PX milliseconds] [NX|XX]app
EX
seconds – 以秒爲單位設置key過時時間PX
milliseconds – 以毫秒爲單位設置key過時時間NX
– 若是key不存在,則設置keyXX
– 若是key存在時,則設置key
2.GET異步
GET命令用於經過key查詢value編碼
定義:GET keyspa
3.APPENDdebug
APPEND命令用於追加內容,若key存在,則在該key的value後追加值;若key不存在,則先建立key,再添加value;unix
定義:APPEND key value
4.BITCOUNT
計算value指定索引區間的爲1的個數
定義:BITCOUNT key start end
5.BITFIELD
略
6.BITTOP
進行value的位操做,且將結果保存在destkey中
定義:BITOP operation destkey key1 [key2 ..]
7.BITP0S
命令返回字符串裏面第一個被設置爲1或者0的bit位
定義:BITPOS key bit start end
8.DECR
DECR命令用於將可轉化爲int類型的key值減1,須要注意的是,當key值不可轉化爲數值時,會出錯
定義:DECR
8.DECRBY
DECRBY與DECR原理差很少,只不過DECRBY是減去多少。
定義:DECRBY key decrement
9.GETBIT
獲取key的value值在指定offset處的bit值
定義:GETBIT key offset
10.GETRANGE
GETRANGE表示截取key相應位置的字符串
定義:GETRANGE key start end
11.GETSET
設置key的value值,並返回設置前的值
定義:GETSET key value
12.INC
自動加1
定義:INC key
13.INCBY
在當前key值基礎上增長值
定義:INCBY key increment
14.INCRBYFLOAT\
在當前key值基礎上增長浮點數
定義:INCRBYFLOAT key increment
15.MGET
批量返回指定key和value
定義:MGET key [key..]
16.MSET
批量設置多個key和value
定義:MSET key value [key value ..]
17.MSETNX
在批量設置key時,單批量設置中,只要有一個key已經存在,則該批設置所有取消,因爲這種特性,
MSETNX
能夠實現要麼全部的操做都成功,要麼一個都不執行,這樣能夠用來設置不一樣的key,來表示一
個惟一的對象的不一樣字段。
定義:MSETNX key value [key value ...]
18.PSETEX
設置過時時間,以毫秒爲單位
定義:PSETEX key miliseconds value
19.SETBIT
在key的value指定offset處設置bit值,而且返回offset處原來的bit值
定義:SETBIT key offset value
20.SETEX
設置k/v同時,設置過時時間
定義:SETEX key seconds value
21.SETNX
該命令與SET命令差很少,惟一區別是SETNX設置key時,若key不存在,則建立並添加value值,不然,不操做
定義:SETNX key value
22.SETRANGE
從value值的offset處,用新value替換。
定義:SETRANGE key offeset value
23.STRLEN
返回key的value的字符串長度
定義:STRLEN key
(一)概述
(二)命令操做
1.HSET
設置hash單個值
定義:HSET key filed value
2.HGET
獲取hash字段值
定義:HGET key field
3.HDEL
刪除key的指定字段
定義:HDEL key field
4.HMSET
設置key的多個字段
定義:HMSET key value [key value ..]
5.HMGET
獲取key的多個字段值
定義:HMGET key field [field..]
6.HGETALL
返回key指定哈希集中全部字段和值
定義:HGETALL key
7.HEXISTS
檢查key中是否存在指定的field,存在返回1,不存在返回0
定義:HEXISTS key field
8.HKEYS
返回hashs的key的字段
定義:HKEYS key
9.HVALS
返回 key 指定的哈希集中全部字段的值
定義:HVALS key
10.HLEN
返回 key
指定的哈希集包含的字段的數量
定義:HLEN key
11.HSTRLEN
返回key的指定字段的字符串長度
定義:HSTRLEN key field
12.HINCRBY
指定字段增減指定值
定義:HINCRBY key field increment
13.HINCRBYFLOAT
指定字段增長指定浮點數
定義:HINCRBYFLOAT key field increment
11.HSCAN
略
12.HSETNX
與HSET功能同樣,區別在於HSETNX會先判斷field是否存在,若存在,則不作任何操做
定義:HSETNX key filed value
1.RPUSH
從隊列右端壓入數據到List,一次能夠壓入單個或多個數據
定義:RPUSH key value [value ..]
2.RPOP
從List移除元素,並返回被移除的元素
定義:RPOP key
3.LPUSH
從List左側壓入元素,返回壓入後的List長度
定義:LPUSH key value [value ..]
4.LPOP
從List左側移除元素,並返回被移除的元素
定義:LPOP key
5.LLEN
返回key對應的List長度
定義:LLEN key
6.LSET
設置key指定index處的值
定義:LSET key index value
7.LINDEX
返回指定index處的value值
定義:LINDEX key index
8.LINSERT
在List指定value前或後插入元素
定義:LINSERT key BEFORE|AFTER pivot value
9.LREM
從頭或從尾移除前count次出現value的值,count爲正數,則從頭向尾開始;count爲負數,則從
尾向頭開始;count爲0,移除全部爲value的值
定義:LREM key count value
10.LTRIM
截取List指定區間的值
定義:LTRIM key start stop
11.LRANGE
獲取List指定索引區間的值
定義:LRANGE key start end
12.LPUSHX
與LPUSH功能同樣,都是插入從左側插入元素,區別是,LPUSHX在插入元素
前,先判斷key是否存在,只有key存在時,才插入元素。
定義:LPUSHX key value
13.RPUSHX
功能與RPUSH同樣,區別是RPUSHX在插入元素前,先判斷key是否存在,
只有key存在時,才插入元素。
定義:RPUSHX key value
14.RPOPLPUSH
從指定key中移除元素,且將移除的元素存放在另外一個key中,返回被移除和放入的元素
定義:RPOPLPUSH source destination
15.BRPOPLPUSH
BRPOPLPUSH
是RPOPLPUSH
的阻塞版本。 當 source 包含元素的時候,這個命令表現
得跟RPOPLPUSH
如出一轍。 當 source 是空的時候,Redis將會阻塞這個鏈接,直到
另外一個客戶端 push 元素進入或者達到 timeout 時限。 timeout 爲 0 能用於無限期阻塞
客戶端
定義:BRPOPLPUSH key source destination timeout
16.BLPOP
BLPOP是阻塞式列表的彈出原語
定義:BLPOP key [key ..] timeout
17.BRPOP
BRPOP是一個阻塞的列表彈出原語
定義:BRPOP key [key ..] timeout
1.SADD
向Sets中添加元素,一次可添加單個或多個
定義:SADD key member [member..]
2.SMEMBERS
查看key全部元素
定義:SMEMBERS key
3.SCARD
返回key元素個數
定義:SCARD key
4.SISMEMBER
判斷key中是否存在某個元素,存在返回1,不存在返回0
定義:SISMEMBER key member
5.SREM
定義:SREM key members [members ..]
6.SMOVE
從指定key移除元素到目標元素,移除成功返回1,不然返回0
定義:SMOVE
7.SPOP
從sets中隨機取count個元素,返回隨機取出的元素
定義:SPOP key [count]
8.SRANDMEMBER
從sets中隨機返回count個元素
定義:SRANDMEMBER
9.SDIFF
返回集合差集
定義:SDIFF key [key ..]
10.SDIFFSTORE
SDIFFSTORE命令與SDIFF命令功能同樣,區別是SDIFFSTORE將差集的結果存放在destination中
定義:SDIFFSTORE destination key [key ..]
11.SINTER
定義:SINTER key [key..]
12.SINTERSTORE
SINTERSTORE功能與SINTER是同樣的,都是返回差集,區別是SINTERSTORE將差集存在
destination中
定義:SINTERSTORE destination key [key..]
13.SUNION
SUNION返回並集
定義:SUNION key [key..]
14.SUNIONSTORE
SUNIONSTORE功能與SUNION同樣,都是返回並集,區別是SUNIONSTORE
將並集存放在destination中
定義:SUNIONSTORE destinaiton key [key..]
15.SCAN
略
1.ZADD
添加新值
定義:ZADD key [NX|XX] [CH] [INCR] score member [score member]
2.ZRANGE
獲取指定key的索引範圍內的值,可只獲取值或帶權重的值。
定義:ZRANGE key start end [WIHTSCORES]
3.ZSCORE
返回成員的score
定義:ZSCORE key member
4.ZREM
從key中移除元素
定義:ZREM key member [member..]
5.ZRANK
返回有序集key中membe排名
定義:ZRANK key member
6.ZCOUNT
計算介於score範圍內的元素個數
定義:ZCOUNT key min max
7.ZCARD
返回key的有序集個數
定義:ZCARD key
8.ZPOPMIN
從key中移除count個socre最低的元素
定義:ZPOPMIN key [count]
9.ZPOPMAX
從key中移除count個socre最高的元素
定義:ZPOPMAX
10.ZINCRY
爲有序集key的成員member的score值加上增量increment,返回增量後的
score
定義:ZINCRY key increment member
11.BZPOPMIN
功能與ZPOPMIN同樣,區別是BZPOPMIN帶有阻塞
定義:BZPOPMIN key [key..] timeout
12.BZPOPMAX
功能與ZPOPMAX同樣,區別是BZPOPMAX帶有阻塞
定義:BZPOPMAX key [key..] timeout
13.ZINTERSCORE
計算有序集合的交集,其中destination用來存放交集結果,mumkeys指用於計算交集key的個數
,weight表示計算交集時,score乘以的權重,默認爲1
定義:ZINTERSCORE destination mumkeys key [key..] [weights weight] [SUM|MIN|MAX]
14.ZUNIONSTORE
用法與ZINTERSCORE同樣,只不過是計算有序集合的並集
定義:ZUNIONSTORE destination mumkeys key [key..] [weights weight] [SUM|MIN|MAX]
15.ZLEXCOUNT
ZLEXCOUNT 命令用於計算有序集合中指定成員之間的成員數量
定義:ZLEXCOUNT key min max
16.ZRANGEBYLEX
ZRANGEBYLEX 返回指定成員區間內的成員,按成員字典正序排序, 分數必須相同
定義:ZRANGEBYLEX key min max [limit offset count]
17.ZRANGBYSCORE
根據分數方位查找元素
定義:ZRANGBYSCORE key min max [withscores] [limit offset count]
18.ZREMRANGEBYRANK
移除有序集key中,指定排名(rank)區間內的全部成員
定義:ZREMRANGEBYRANK key start stop
19.ZREMRANGBYSCORE
移除有序集key中,全部score值介於min和max之間(包括等於min或max)的成員
定義:ZREMRANGBYSCORE key min max
20.ZREVRANGE
返回有序集key中,指定區間內的成員。其中成員的位置按score值遞減(從大到小)來排列。
具備相同score值的成員按字典序的反序排列。 除了成員按score值遞減的次序排列這一點外
定義:ZREVRANGE key start stop [withscores]
21.ZREVRANGEBYLEX
ZREVRANGEBYLEX 返回指定成員區間內的成員,按成員字典倒序排序, 分數必須相同
定義:ZREVRANGEBYLEX key min max
22.ZREVRANGEBYSCORE
返回有序集合中指定分數區間內的成員,分數由高到低排序
定義:ZREVRANGEBYSCORE key min max
23.ZREVRANK
返回有序集key中成員member的排名,其中有序集成員按score值從大到小排列。
排名以0爲底,也就是說,score值最大的成員排名爲0
定義:ZREVRANK key member
24.ZSCAN
定義:ZSCAN key cursor [math pattern] [count count]
1.DEL
刪除key
定義:DEL key [key...]
2.DUMP
序列化key
定義:DUMP key
3.RESTORE
反序列化
定義:RESTORE key ttl serialeze-value [replace]
4.EXISTS
判斷key是否存在,存在返回1,不存在返回0
定義:EXISTS key
5.EXPIRE
設置過時時間,以秒爲單位
定義:EXPIRE seconds
6.EXPIREAT
EXPIREAT的做用和EXPIRE相似,都用於爲 key 設置生存時間。
不一樣在於EXPIREAT命令接受的時間參數是 UNIX 時間戳 Unix timestamp
定義:EXPIREAT key timespan
7.KEYS
查看key,其中pattern知足正則表達式
定義:KEYS pattern
8.MIGRATE
定義:MIGRATE host port key destination-db timeout [copy] [replace]
9.MOVE
Redis MOVE 命令用於將當前數據庫的 key 移動到給定的數據庫 db 當中
定義:MOVE key db
10.OBJECT
OBJECT
命令能夠在內部調試(debugging)給出keys的內部對象,它用於檢查或者了
解你的keys是否用到了特殊編碼 的數據類型來存儲空間z。 當redis做爲緩存使用的時候,
你的應用也可能用到這些由OBJECT
命令提供的信息來決定應用層的key的驅逐策略(eviction policies)
定義:OBJECT subcommand [arguments [arguments..]]
11.PERSIST
持久化key
定義:PERSIST key
12.PEXPIRE
它以毫秒爲單位設置 key 的生存時間
定義:PEXPIRE key milliseconds
13.PEXPIREAT
以毫秒爲單位設置 key 的過時 unix
時間戳
定義:PEXPIREAT key milliseconds-timestamp
14.PTTL
以毫秒爲單位返回 key 的剩餘生存時間,功能與TTL差很少
定義:PTTL key
15.RANDOMKEY
從當前數據庫隨機返回一個key
定義:RANDOMKEY
16.RENAME
給key從新命名
定義:RENAME key newkey
17.RENAMENX
當且僅當 newkey 不存在時,將 key 更名爲 newkey ,成功返回1,失敗返回0
定義:RENAMENX key newkey
18.SCAN
增量迭代集合元素
定義:SCAN cursor [match pattern] [count count]
19.SORT
排序
定義:SORT key [by pattern] [limit offset count] [get pattern] [asc|desc] [alpha] destination
20.TOUCH
修改key最後訪問時間
定義:TOUCH key [key..]
21.TTL
計算key過時剩餘時間,返回剩餘的秒數
定義:TTL key
22.TYPE
返回key類型
定義:TYPE key
23.UNLINK
異步刪除keys
定義:UNLINK key [key..]
24.WAIT
當前鏈接的寫操做會產生日誌偏移,該命令會返回已處理至該偏移量的slaves的個數
定義:WAIT numslavess timeout