Redis 經常使用命令清單

1.keys鍵操做

exists key                       測試指定key是否存在
    del key1 key2….keyN              刪除指定key
    type key                         返回指定key的value類型
    keys pattern                     返回指定模式的全部key
    rename oldkey newkey             更名字
    dbsize                           返回當前數據路的key數量
    expire key seconds               爲key指定過時時間
    ttl key                          返回key的過時剩餘秒數
    select db-index                  選擇數據庫
    move key db-index                把key從當前數據庫移動到指定數據庫
    flushdb                          刪除當前數據庫全部key
    flushall                         刪除全部數據庫中的全部key
複製代碼

2.String類型操做

set key value                    設置key對應值爲string類型的value
    setex key seconds value          設置key對應值爲string類型的value,增長到期時間
    mset key1 value1…keyN valueN     一次設置多個key的值
    mget key1 …keyN                  一次獲取多個key的值
    incr key                         對key的值++操做,並返回新值
    decr key                         同上,可是作的是–操做
    incrby key integer               同incr,加指定值
    decrby key integer               同desr,減指定值
    incrbyfloat key increment        對key的值增長一個浮點數
    append key value                 給指定key的字符串追加value
    substr key start end             返回截取過的key的字符串值 
    getrange key start end           獲取存儲在key上的值的一個子字符串
    setrange key offset value        將從start偏移量開始的子串設置指定的值
複製代碼

3.list鏈表操做(有序,可重複)

lpush key string                    在key對應list的頭部添加字符串元素
    rpop key                            在list的尾部刪除元素,並返回刪除元素
    rpush key string   
    lpop key
    lpush key string
    llen key                            返回對應list的長度
    lrange key start end                返回指定區間內的元素,從下表0開始
    ltrim key start end                 截取list, 保留指定區間內元素
    lindex key                          下標 獲取列表下標對應的指定元素
    blpop key[key…] time out            刪除,並得到該列的第一元素, 或阻塞,直到有一個可用
    brpop key[key…] time out            刪除, 並得到該列的最後一個元素, 或阻塞,直到有一個可用
    rpoplpush source destination        刪除列表中的最後一個元素,將其追加到另外一個列表
    brpoplpush source destination timeout       彈出一個列表的值,將他推到另外一個列表,並返回他,直到有一個可用 
   能夠模擬 隊列(先進後出) 和 棧(先進先出)
複製代碼

4.hash散列操做

hdel key field[field…]              刪除一個或多個hash的field
    hexists key field                   判斷field是否存在hash中
    hget key field                      獲取hash中field的值
    hgetall key                         從hash中讀取所有的域和值
    hincrby key field increment         將hash中指定域的值增長給定的值
    hincrbyfloat key field increment    將hash中指定域的值增長給定的浮點數
    hkeys key                           獲取hash 中全部field
    hlen key                            獲取hash中全部字段的數量
    hmget key field[field…]             獲取hash裏面指定字段的值
    hmset key field[field…]             設置hash字段值
    hset key field value                設置hash裏面一個字段的值
    hsetnx key field value              設置hash的一個字段,只有這個字段不存在是有效
    hstrlen key field                   獲取hash裏面指定field的長度
    hvals key                           獲取hash的全部值
    hscan key cursor                    迭代hash裏面的元素
複製代碼

5.set集合操做(無序,惟一)

sadd key member                     添加一個string元素到key對應的set集合中
    srem key member                     從key對應set中移除給定元素
    smove p1 p2 member                  從p1對應set中移除給定元素並添加到p2對應set中
    scard key                           返回set的元素個數
    sismember key member                判斷member是否在set中
    sinter key p1 p2…pN                 返回全部給定key的交集
    sunion key p1 p2…pN                 返回全部給定key的並集
    sdiff key p1 p2…pN                  返回全部給定key 的差集
    smembers key                        返回key對應set的全部元素,結果是無序的
    sinterstore destination key [key….]   獲取兩個集合的交集,並存儲在一個關鍵的結果集
    sunionstore destination key [key…]    合併set集合,並將結果存入新的set裏面
    sdifferstore destination key[key…]     獲取隊列的差集,並存儲在一個新的結果集
    srandmember key [count]             從集合中隨機獲取一個key
    spop key[count]                     刪除並取得一個集合裏面的元素
    smove source destination member        移動集合裏的一個key到另外一個集合
複製代碼

6.sorted set有序集合操做(有序, 惟一)

有時候還能夠這樣用,在zset裏設置全部元素的score爲0,就按元素首字母排序(自動補全)redis

* zadd key score member          添加元素到集合,元素在集集合中存在則更新應對的score 
 * zrem key member                刪除指定元素 
 * zcount key min max             返回分數範圍內的成員變量 
 * zincrby key incr member        按照incr幅度增長對應member的score值,返回score值 
 * zrank key member               返回指定元素在集合中的排名(下標),集合中元素是按score從小到大排序的
 * zrevrank key member            集合中元素是按score從大到小排序的 
 * zrange key start end           從集合中選擇指定區間的元素,返回的是有序集合 
 * zrevrange key start end        同上,返回結果是按score逆序的 
 * zcard key                      返回集合中元素的個數 
 * zscore key member              返回給定元素對應的score 
 * zremrangebyrank key min max    刪除集合中排名在給定區間的元素 
 * zinterstore distination numkeys 相交多個結果集,致使排序的設置存儲在一個新的結果集 
 * zunionstore destination numberkeys 
    添加多個排序集合致使排序的設置存儲在一個新的結果集,能夠實現取得最大值(max),取得最小值(min)
複製代碼

7.redis的基本事務(流水線)

樂觀鎖: watch只會在數據被其餘客戶端搶先修改了的狀況下通知執行這個命令的客戶端,而不會阻止其餘客戶端對數據進行修改數據庫

* discard 丟棄全部multi以後發的命令 
	* exec 執行全部multi以後發放人命令 
	* multi 標記一個事務塊開始 
	* unwatch 取消事務命令 
	* watch key[key…] 鎖定key,直到執行了multi/exec命令
複製代碼

8.redis持久化的兩種方式

8.1 快照持久化

./redis-cli bgsave 異步快照持久化命令   save操做是在主線程中保存快照的(不推薦)
 當執行shutdown命令後,會執行一個save命令,執行完畢以後關閉服務器
 當從服務器向主服務器發送一個sync命令來執行一次複製操做,那麼主服務器會執行bgsave命令
 
 配置文件快照配置信息 
 save 900 1 (900秒內有1次修改備份)
 save 300 10 (900秒內有10次修改備份)
 save 60 10000 (60 秒內有10000 次修改備份)
複製代碼

8.2 AOF持久化

開啓AOF持久化(設置以前全部數據被清空)
開啓AOF持久化—>修改配置文件 appendonly yes
AOF備份存儲文件—> appendfilename appendonly.aof

appendfsync always                                    
      每次收到寫命令就當即強制寫入磁盤,最慢的,可是保證徹底的持久化,不推薦使用,還有可能影響固態硬盤的壽命
appendfsync everysec                                 
      每秒鐘強制寫入磁盤一次,在性能和持久化方面作了很好的折中,推薦
appendfsync no                                          
      看心情
AOF備份文件優化處理 ./redis-cli bgrewriteaof
複製代碼

9. redis主從複製

從服務器(可讀)配置文件修改:slaveof (主服務器ip地址和端口號)ip port
 
 # 從服務器默認禁止寫入操做: 
 slave-read-only yes
 
 # 當3個或3個以上的從數據庫鏈接到主數據庫時,主數據庫才能夠寫入:
 min-slaves-to-write 3
 
 # 容許從數據庫失去鏈接的最長時間:
 min-slave2-max-lag 10
 
 # 服務器終止複製操做
 slaveof on one 

 # 服務器開始複製一個新的主服務器
 slaveof host port 
 
 從服務器在進行同步時,會清空本身的全部數據 redis不支持主主複製
 主從鏈:隨着讀請求操做的重要性明顯高於寫請求的操做性,
 增長從服務器,減輕主服務器的負擔,從服務器能夠有本身的從服務器
複製代碼

10.處理系統故障

遇到系統故障時,redis提供了數據恢復工具:bash

redis-check-aof 和 redis-check-dump服務器

相關文章
相關標籤/搜索