redis常用命令及進階特性

來源:互聯網
上載者:User

標籤:redis

11.redis常用命令

keys * 返回所有的鍵

keys my* 模糊比對

exists key 確認key是否存在

del key

expire key time對現有的鍵設定到期時間[秒為單位]

ttl key 查看到期時間,-1代表已到期

move 將當期資料庫中的key移到其它資料庫當中

select database_name 選擇資料庫

move key database_name

persist key 取消到期時間,此時ttl key返回-1並不代表到期

randomkey 隨機返回一個key

rename 重新命名key

rename set2 set20

type key 返回key的類型

ping 測試連接是否正常

echo 在命令列列印一些內容

select database 選擇資料庫 ,redis資料庫編號在0到15之間

quit/exit/ctrl+c退出

dbsize返回當前資料庫的數目

info擷取伺服器的資訊與統計

config get key 即時傳儲收到的請求

config get *

flushdb 刪除當前選擇資料庫中的所有key

flushall 刪除所有資料庫當中的所有key


12.redis進階應用程式

 12.1安全性

     設定密碼:

     vi /usr/local/redis/etc/redis.conf

     requirepass password

             重啟服務之後進行串連

     /usr/local/redis/bin/redis-cli

     auth password

             或者/usr/local/redis/bin/redis-cli -a password

 12.2主從複製

  master可以有多個slave

  多個slave可以串連到同一個master外,還可以串連到其它的slave

  主從複製不會阻塞master,在同步資料的時候,master可以繼續處理client請求

  提高系統的伸縮性

  

  redis主從複製的過程:

  slave與master建立串連,發送sync同步指令

  master會啟動一個後台進程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝

  slave將此檔案儲存到硬碟上

  

  配置主從伺服器:

  配置slave伺服器很簡單,只需要在slave的設定檔中加入以下配置:

  slaveof 192.168.1.1 6379#指定master的IP和連接埠

  masterauth password #這是主機的密碼

  info可以查看主從機器資訊

 12.3事物處理

     redis對事務的支援目前還比較簡單,redis只能保證一個Client發起的事務中的命令可以連續的執行,而中間不會插入其他client的命令,當一個client在一個串連中發出multi命令時,這個

     串連會進入一個事務上下文,該串連後續的命令不會立即執行,而是先放到一個隊列中,當執行exec命令時,redis會順序的執行隊列中的所有命令

     multi可以開啟事務上下文

  exec執行事務當中的命令

  discard取消事務

  

  樂觀鎖:大多數是基於資料版本version的記錄機制實現的,即為資料增加一個版本標識

  ,在基於資料庫表的版本解決方案中,一般是通過為資料庫表添加一個version欄位來實現讀取資料時,

  將此版本號碼一同讀出,之後更新時,對比版本號碼加1.此時,將提交資料的版本號碼與資料表對應記錄的目前的版本號進行對比

  ,如果提交的資料版本號碼大於資料庫目前的版本號,則予以更新,否則認為是到期資料

redis樂觀鎖

get age

watch age 

multi

watch命令會監視給定的key,當exec時如果監視的key從調用watch後發生過變化,則整個事務會失敗。

也可以調用watch多次監視多個key,這樣就可以對指定的key加樂觀鎖了,注意watch的key是對整個

串連有效,事務也一樣。如果中斷連線,監視和事務都會被自動清除,當然了exec,discard,unwatch命令都會

清除串連中的所有監視。

 12.4持久化機制

 redis是一個支援持久化的記憶體資料庫,也就是說redis需要經常將記憶體中的資料同步到硬碟來保證持久化

 1.snapshotting(快照)也是預設

 2.append-only file(縮寫aof)的方式

 快照是預設的持久化方式。這種方式是將記憶體中資料以快照的方式寫入到二進位檔案當中,預設的檔案名稱為

 dump.rdb.可以通過配置設定自動做快照持久化的方式,我們可以配置redis在n秒內如果超過m個key被修改

 就自動寫快照

 save 900 1#900秒內如果超過一個key被修改,則發起快照儲存

 save 300 10#300秒內如超過10個key被修改,則發起快照儲存

 save 60 10000

 

 由於快照方式是在一定間隔時間做一次的,所以如果redis意外down掉的話,就會丟失最後一次快照後的所有修改

 aof比快照方式有更好的持久性,是由於在使用aof時,redis會將沒一個收到的寫命令都通過write函數追加到檔案中,

 當redis重啟時會通過重新執行檔案中儲存的寫命令來在記憶體中重建整個資料庫的內容。

 

 當然由於os會在核心中緩衝write做的修改,所以可能不是立即寫到硬碟上,這樣aof方式的持久化也還是有可能會丟失部分修改。

 可以通過設定檔告訴redis我們想要通過fsync函數強制os寫入到磁碟的時機

 appendonly yes #啟用aof持久化方式

 #appendfsync always #收到寫命令就立即寫入磁碟,最慢,但是保證完全的持久化

 appendfsync everysec #每秒鐘寫入磁碟一次,在效能和持久化方面做了很好的折中

 #appedfsync no #完全依賴os,效能最好,持久化沒保證

 

 12.5發布訂閱訊息

           發布訂閱(pub/sub)是一種訊息通訊模式,主要的目的是解除訊息發行者和訊息訂閱者之間的耦合,redis作為一個pub/sub

          的server,在訂閱者和發行者之間起到了訊息路由的功能,訂閱者可以通過subscribe和

    psubscribe命令向redis server訂閱自己感興趣的訊息類型,redis將資訊類型稱為通道

    (cahnnel).當發行者通過publish命令向redis server發送特定類型的資訊時,訂閱該資訊類型的全部client都會收到此訊息     

 subscribe tv1 監聽

 subscribe tv1 tv2 

 publish tv1 zsjbroadcast 廣播

 

 12.6虛擬記憶體的使用

redis的虛擬記憶體與作業系統的虛擬記憶體不是一回事,但是思路和目的都是相同的

就是暫時把不經常訪問的資料從記憶體交換到磁碟中,從而騰出寶貴的記憶體空間

用於其他需要訪問的資料,尤其是對於redis這樣的記憶體資料庫,記憶體總是不夠用的,除了可以將資料分割到多個redis server外

另外能夠提高資料庫容量的辦法就是使用虛擬記憶體把那些不經常訪問的資料交換到磁碟上

vm-enabled yes#開啟vm功能

vm-swap-file /tmp/redis.swap #交換出來的value儲存的檔案路徑

vm-max-memory 1000000 #redis使用的最大記憶體上限

vm-page-size 32 #每個頁面的大小32位元組

vm-pages 1344217728 #最多使用多少頁面

vm-max-threads 4#用於執行value對象換入緩衝的背景工作執行緒數量


本文出自 “逆天” 部落格,請務必保留此出處http://xxzjzsj.blog.51cto.com/3052058/1629164

redis常用命令及進階特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.