Redis簡介:redis
1.Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。數據庫
2.幾個特色:緩存
存儲的數據類型網絡
字符串,散列,列表,集合,有序集合數據結構
內存存儲持久化spa
內存讀寫速度快,持久化到硬盤(RDB,AOF).net
功能豐富命令行
可用於緩存,隊列,消息訂閱發佈日誌
支持鍵的生存時間排序
按照必定規則刪除鍵
簡單穩定
比SQL穩定簡單
支持多種客戶端
c語言開發,3萬行代碼
3.有5種數據結構,分別是:String, List, Hash, Set, SortedSet.
4.有2種持久化機制,分別是:RDB,AOF。(見下一篇文章)
下面說一下這幾種數據類型的命令行操做
1.String
1). set key value : 將字符串值 value 關聯到 key 。若是 key 已經持有其餘值, SET 就覆寫舊值,無視類型.
2). get key : 返回 key 所關聯的字符串值。若是key 不存在那麼返回特殊值 nil 。
3). MSET key value [key value ...] : 同時設置一個或多個key-value 對。若是某個給定 key 已經存在,那麼 MSET 會用新值覆蓋原來的舊值
4). MGET key [key ...] : 返回全部(一個或多個)給定 key 的值。若是給定的 key 裏面,有某個 key 不存在,那麼這個 key 返回特殊值 nil 。
5). MSETNX key value [key value ...] : 同時設置一個或多個key-value 對 . 即便只有一個給定 key 已存在, MSETNX 也會拒絕執行全部給定 key 的設置操做。
6). APPEND key value : 若是 key 已經存在而且是一個字符串,APPEND 命令將 value 追加到 key 原來的值的末尾。若是 key 不存在, APPEND 就簡單地將給定 key 設爲 value
7). INCR key : 將 key 中儲存的數字值增一。(使用普遍,好比商品存儲時,使用redis統一管理id)
8). DECR key : 將 key 中儲存的數字值減一。
9). INCRBY key increment : 將 key 所儲存的值加上增量increment 。
10). DECRBY key decrement : 將 key 所儲存的值減去減量decrement 。
11). GETSET key value : 將給定 key 的值設爲 value ,並返回 key 的舊值(oldvalue)。
12). STRLEN key : 返回 key 所儲存的字符串值的長度
13). SETNX key value : 將 key 的值設爲 value ,當且僅當 key 不存在。若給定的 key 已經存在,則 SETNX 不作任何動做。
14). SETEX key seconds value : 將值 value 關聯到 key ,並將 key 的生存時間設爲seconds (以秒爲單位)。
15). SETRANGE key offset value : 用 value 參數覆寫(overwrite)給定 key 所儲存的字符串值,從偏移量offset 開始。
16). GETRANGE key start end : 返回 key 中字符串值的子字符串,字符串的截取範圍由 start 和 end 決定(包括 start 和 end 在內)。
17). SETBIT key offset value : 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。
18).GETBIT key offset : 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit).2.List
1). LPUSH key value [value ...] : 將一個或多個值 value插入到列表 key 的表頭.
2). LRANGE key start end : 返回列表 key 中指定區間內的元素,區間以偏移量 start 和 end 指定。
3). LPUSHX key value : 將值 value 插入到列表 key 的表頭,當且僅當 key 存在而且是一個列表。
4). LPOP key : 移除並返回列表 key 的頭元素。
5). LLEN key : 返回列表 key 的長度。
6). LREM key count value : 根據參數 count 的值,從頭部開始移除列表中與參數 value 相等的元素。
7). LSET key index value : 將列表 key 下標爲 index 的元素的值設置爲value 。
8). LINDEX key index : 返回列表 key 中,下標爲 index 的元素。
9). LTRIM key start end : 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。
10). LINSERT key BEFORE|AFTER pivot value :將值 value 插入到列表 key 當中,位於值 pivot 以前或以後。
11). RPUSH key value [value ...] : 將一個或多個值 value插入到列表 key 的表尾(最右邊)。
12). RPUSHX key value : 將值 value 插入到列表 key 的表尾,當且僅當 key 存在而且是一個列表。
13). RPOP key : 移除並返回列表 key 的尾元素。
14).RPOPLPUSH source destination : 在一個原子時間內,執行兩個動做:將列表 source 中的最後一個元素(尾元素)彈出,並返回給客戶端。將 source 彈出的元素插入到列表 destination ,做爲 destination 列表的的頭元素。3.Hash
1). HSET key field value : 將哈希表 key 中的域 field 的值設爲 value 。
2). HGET key field : 返回哈希表 key 中給定域 field 的值。
3). HSETNX key field value : 將哈希表 key 中的域 field 的值設置爲 value ,當且僅當域 field 不存在。
4). HEXISTS key field : 查看哈希表 key 中,給定域 field 是否存在。
5). HLEN key : 返回哈希表 key 中域的數量。
6). HDEL key field [field ...] : 刪除哈希表 key 中的一個或多個指定域,不存在的域將被忽略。
7). HINCRBY key field increment : 爲哈希表 key 中的域 field 的值加上增量increment 。
8). HGETALL key : 返回哈希表 key 中,全部的域和值。
9). HKEYS key : 返回哈希表 key 中的全部域。
10). HVALS key : 返回哈希表 key 中全部域的值。
11). HMSET key field value [field value...] : 同時將多個 field-value (域-值)對設置到哈希表 key 中。
12). HMGET key field [field ...] : 返回哈希表 key 中,一個或多個給定域的值.
4.Set1). SADD key member [member ...] : 將一個或多個 member元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略。
2). SMEMBERS key : 返回集合 key 中的全部成員。
3). SCARD key : 返回集合 key 的基數(集合中元素的數量)。
4). SISMEMBER key member : 判斷 member 元素是否集合 key 的成員。
5). SPOP key : 移除並返回集合中的一個隨機元素。
6). SRANDMEMBER key : 若是命令執行時,只提供了 key 參數,那麼返回集合中的一個隨機元素。
7). SREM key member [member ...] : 移除集合 key 中的一個或多個member 元素,不存在的 member 元素會被忽略。
8). SMOVE source destination member : 將 member 元素從 source 集合移動到destination 集合。SMOVE 是原子性操做。
9). SDIFF set1 set2 : 返回一個集合的所有成員,該集合是全部給定集合之間的差集。
10). SDIFFSTORE diffSet set1 set2 : 這個命令的做用和SDIFF 相似,但它將結果保存到 destination 集合,而不是簡單地返回結果集。
11). SUNION set1 set2 : 返回一個集合的所有成員,該集合是全部給定集合的並集。
12). SUNIONSTORE unionset set1 set2 : 這個命令相似於SUNION 命令,但它將結果保存到 destination 集合,而不是簡單地返回結果集。
13). SINTER set1 set2 : 返回一個集合的所有成員,該集合是全部給定集合的交集。
14). SINTERSTORE interset set1 set2: 這個命令相似於 SINTER 命令,但它將結果保存到 destination 集合,而不是簡單地返回結果集。5.SortedSet
1). ZADD key score member [[scoremember] ...] : 將一個或多個 member元素及其 score 值加入到有序集 key 當中。
2). ZCARD key : 返回有序集 key 的元素個數。
3). ZINCRBY key increment member : 爲有序集 key 的成員 member 的 score 值加上增量increment 。
4). ZCOUNT key min max : 返回有序集 key 中, score 值在 min 和 max 之間(默認包括 score 值等於 min 或 max )的成員的數量。
5). ZRANGE key start end [WITHSCORES] : 返回有序集 key 中,指定區間內的成員。其中成員的位置按 score 值遞增(從小到大)來排序。(按照排名取)
6). ZREVRANGE key start end [WITHSCORES] : 返回有序集 key 中,指定區間內的成員。其中成員的位置按 score 值遞減(從大到小)來排列。(按照排名取)
7). ZRANGEBYSCORE key min max [WITHSCORES][LIMIT offset count] : 返回全部 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。
8). ZREVRANGEBYSCORE key max min[WITHSCORES] [LIMIT offset count] : 返回score 值介於 max 和 min 之間(默認包括等於 max 或 min )的全部的成員。有序集成員按score 值遞減(從大到小)的次序排列。
9). ZRANK key member : 返回有序集 key 中成員 member 的排名。其中有序集成員按score 值遞增(從小到大)順序排列。
10). ZREVRANK key member : 返回有序集 key 中成員 member 的排名。其中有序集成員按score 值遞減(從大到小)排序。
11). ZSCORE key member : 返回有序集 key 中,成員 member 的 score 值。
12). ZREM key member [member ...] : 移除有序集 key 中的一個或多個成員,不存在的成員將被忽略。
13). ZREMRANGEBYRANK key start stop : 移除有序集 key 中,指定排名(rank)區間內的全部成員。區間分別如下標參數 start 和 stop 指出,包含 start 和 stop 在內。
14).ZREMRANGEBYSCORE key min max : 移除有序集 key 中,全部 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。本文同步分享在 博客「IT雲清」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。