redis是鍵值對的數據庫,有5中主要數據類型:redis
字符串類型(string),散列類型(hash),列表類型(list),集合類型(set),有序集合類型(zset)數據庫
幾個基本的命令:編碼
KEYS * 得到當前數據庫的全部鍵
spa
EXISTS key [key ...] 判斷鍵是否存在,返回個數,若是key有同樣的也是疊加數排序
DEL key [key ...] 刪除鍵,返回刪除的個數索引
TYPE key 獲取減值的數據類型(string,hash,list,set,zset)rem
FLUSHALL 清空全部數據庫字符串
CONFIG [get、set] redis配置get
-inf 負無窮string
+inf正無窮
一:字符串類型string
字符串類型是Redis的最基本類型,它能夠存儲任何形式的字符串。其它的四種類型都是字符串類型的不一樣形式。
最基本的命令:GET、SET 語法:GET key,SET key value value若是有空格須要雙引號以示區分
整數遞增:INCR 語法:INCR key 默認值爲0,因此首先執行命令獲得 1 ,不是整型提示錯誤
增長指定的整數:INCRBY 語法:INCRBY key increment
整數遞減:DECR 語法:DECR key 默認值爲0,因此首先執行命令獲得 -1,不是整型提示錯誤
減小指定的整數:DECRBY 語法:DECRBY key increment
增長指定浮點數:INCRBYFLOAT 語法:INCRBYFLOAT key increment 與INCR命令相似,只不過能夠遞增一個雙精度浮點數
向尾部追加值:APPEND 語法:APPEND key value redis客戶端並非輸出追加後的字符串,而是輸出字符串總長度
獲取字符串長度:STRLEN 語法:STRLEN key 若是鍵不存在返回0,注意若是有中文時,一箇中文長度是3,redis是使用UTF-8編碼中文的
獲取多個鍵值:MGET 語法:MGET key [key ...] 例如:MGET key1 key2
設置多個鍵值:MSET 語法:MSET key value [key value ...] 例如:MSET key1 1 key2 "hello redis"
二進制指定位置值:GETBIT 語法:GETBIT key offset 例如:GETBIT key1 2 ,key1爲hello 返回 1,返回的值只有0或1,
當key不存在或超出實際長度時爲0
設置二進制位置值:SETBIT 語法:SETBIT key offset value ,返回該位置的舊值
二進制是1的個數:BITCOUNT 語法:BITCOUNT key [start end] ,start 、end爲開始和結束字節
位運算:BITOP 語法:BITOP operation destkey key [key ...] ,operation支持AND、OR、XOR、NOT
偏移:BITPOS 語法:BITPOS key bit [start] [end]
二:散列類型hash
設置單個:HSET 語法:HSET key field value,不存在時返回1,存在時返回0,沒有更新和插入之分
設置多個:HMSET 語法:HMSET key field value [field value ...]
讀取單個:HGET 語法:HGET key field,不存在是返回nil
讀取多個:HMGET 語法:HMGET key field [field ...]
讀取所有:HGETALL 語法:HGETALL key,返回時字段和字段值的列表
判斷字段是否存在:HEXISTS 語法:HEXISTS key field,存在返回1 ,不存在返回0
字段不存在時賦值:HSETNX 語法:HSETNX key field value,與hset命令不一樣,hsetnx是鍵不存在時設置值
增長數字:HINCRBY 語法:HINCRBY key field increment ,返回增長後的數,不是整數時會提示錯誤
刪除字段:HDEL 語法:HDEL key field [field ...] ,返回被刪除字段的個數
只獲取字段名:HKEYS 語法:HKEYS key ,返回鍵的全部字段名
只獲取字段值:HVALS 語法:HVALS key ,返回鍵的全部字段值
字段數量:HLEN 語法:HLEN key ,返回字段總數
三:列表類型(list)
內部使用雙向鏈表實現,因此獲取越接近兩端的元素速度越快,但經過索引訪問時會比較慢
添加左邊元素:LPUSH 語法:LPUSH key value [value ...] ,返回添加後的列表元素的總個數
添加右邊元素:RPUSH 語法:RPUSH key value [value ...] ,返回添加後的列表元素的總個數
移除左邊第一個元素:LPOP 語法:LPOP key ,返回被移除的元素值
移除右邊第一個元素:RPOP 語法:RPOP key ,返回被移除的元素值
列表元素個數:LLEN 語法:LLEN key, 不存在時返回0,redis是直接讀取現成的值,並非統計個數
獲取列表片斷:LRANGE 語法:LRANGE key start stop,若是start比stop靠後時返回空列表,0 -1 返回整個列表
正數時:start 開始索引值,stop結束索引值(索引從0開始)
負數時:例如 lrange num -2 -1,-2表示最右邊第二個,-1表示最右邊第一個,
刪除指定值:LREM 語法:LREM key count value,返回被刪除的個數
count>0,從左邊開始刪除前count個值爲value的元素
count<0,從右邊開始刪除前|count|個值爲value的元素
count=0,刪除全部值爲value的元素
索引元素值:LINDEX 語法:LINDEX key index ,返回索引的元素值,-1表示從最右邊的第一位
設置元素值:LSET 語法:LSET key index value
保留列表片斷:LTRIM 語法:LTRIM key start stop,start、top 參考lrange命令
一個列表轉移另外一個列表:RPOPLPUSH 語法:RPOPLPUSH source desctination ,從source列表轉移到desctination列表,
該命令分兩步看,首先source列表RPOP右移除,再desctination列表LPUSH
四:集合類型(set)
集合類型值具備惟一性,經常使用操做是向集合添加、刪除、判斷某個值是否存在,集合內部是使用值爲空的散列表實現的。
添加元素:SADD 語法:SADD key member [member ...] ,向一個集合添加一個或多個元素,由於集合的惟一性,因此添加相同值時會被忽略。
返回成功添加元素的數量。
刪除元素:SREM 語法:SREM key member [member ...] 刪除集合中一個或多個元素,返回成功刪除的個數。
獲取所有元素:SMEMBERS 語法:SMEMBERS key ,返回集合所有元素
值是否存在:SISMEMBER 語法:SISMEMBER key member ,若是存在返回1,不存在返回0
差運算:SDIFF 語法:SDIFF key [key ...] ,例如:集合A和集合B,差集表示A-B,在A裏有的元素B裏沒有,返回差集合;多個集合(A-B)-C
交運算:SINTER 語法:SINTER key [key ...],返回交集集合,每一個集合都有的元素
並運算:SUNION 語法:SUNION key [key ...],返回並集集合,全部集合的元素
集合元素個數:SCARD 語法:SCARD key ,返回集合元素個數
集合運算後存儲結果 語法:SDIFFSTROE destination key [key ...] ,差運算並存儲到destination新集合中
SINTERSTROE destination key [key ...],交運算並存儲到destination新集合中
SUNIONSTROE destination key [key ...],並運算並存儲到destination新集合中
隨機獲取元素:SRANDMEMGER 語法:SRANDMEMBER key [count],根據count不一樣有不一樣結果,count大於元素總數時返回所有元素
count>0 ,返回集合中count不重複的元素
count<0,返回集合中count的絕對值個元素,但元素可能會重複
彈出元素:SPOP 語法:SPOP key [count] ,由於集合是無序的,因此spop會隨機彈出一個元素
五:有序集合類型
添加集合元素:ZADD 語法:ZADD key [NX|XX] [CH] [INCR] score member [score member ...],不存在添加,存在更新。
獲取元素分數:ZSCORE 語法:ZSCORE key member ,返回元素成員的score 分數
元素小到大:ZRANGE 語法:ZRANGE key start top [WITHSCORES] ,參考LRANGE ,加上withscores 返回帶元素,即元素,分數
當分數同樣時,按元素排序
元素大到小:ZREVRANGE 語法:ZREVRANGE key start [WITHSCORES] ,與zrange區別在於zrevrange是從大到小排序
指定分數範圍元素:ZRANGEBYSCORE 語法:ZRANGEBYSCORE key min max [WITHSCORE] [LIMIT offest count]
返回從小到大的在min和max之間的元素,( 符號表示不包含,例如:80-100,(80 100,
withscore返回帶分數
limit offest count 向左偏移offest個元素,並獲取前count個元素
指定分數範圍元素:ZREVRANGESCORE 語法:ZREVRANGEBYSCORE key max min [WITHSCORE] [LIMIT offest count]
與zrangebyscore相似,只不過該命令是從大到小排序的。
增長分數:ZINCRBY 語法:ZINCRBY key increment member ,注意是增長分數,返回增長後的分數;若是成員不存在,則添加一個爲0的成員。
redis命令多,記錄下以防忘記時能夠查