Redis的持久化機制包括RBD和AOF兩種,對於這兩種持久化方式各有優勢,本文將對此進行介紹。 RDB機制的策略 RDB持久化是指在指定的時間間隔內將記憶體中的資料和操作通過快照的方式儲存到redis bin目錄下的一個預設名為
如果是用apt-get或者yum install安裝的redis,可以直接通過下面的命令停止/啟動/重啟redis /etc/init.d/redis-server stop/etc/init.d/redis-server start/etc/init.d/redis-server restart 如果是通過源碼安裝的redis,則可以通過redis的用戶端程式 redis-cli 的 shutdown 命令來重啟redis
轉載請註明出處哈:http://carlosfu.iteye.com/blog/2254154 由於演講時間有限,有關Redis-Cluster,演講者沒做太多介紹,簡單的介紹了一些Redis-Cluster概念作用和遇到的兩個問題,我們在Redis-Cluster也有很多營運經驗,將來的文章會介紹。
Redis的主從架構,能協助我們實現讀多,寫少的情況,下面配置Redis架構,很簡單。 準備環境 vmware + rhel-server-7.0(101,102,103)+redis-3.2.0 1、在192.168.137.101安裝好redis3.2.0,我安裝的目錄如下 redis的安裝參考http://blog.csdn.net/yingxiake/article/details/51469364
Redis中的壓縮列表 壓縮列表(ziplist)是列表鍵和雜湊鍵的底層實現之一。當一個列表鍵只包含少量清單項目,並且每個清單項目要麼就是小整數值,要麼就是長度比較短的字串,那麼Redis就會使用壓縮列表來做列表鍵的底層實現。 例如,執行以下命令將建立一個壓縮列表實現的列表鍵: 127.0.0.1:6379> RPUSH 1st 1 3 5 10086 "hello" "world"(integer) 6127.0.0.1:
redis主從複製過程 當配置好slave後,slave與master建立串連,然後發送sync命令。無論是第一次串連還是重新串連,master都會啟動一個後台進程,將 資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝。後台進程完成寫檔案後,master就傳送檔案給slave,slave將 檔案儲存到硬碟上,再載入到記憶體中,接著master就會把緩衝的命令轉寄給slave,後續master將收到的寫命令發送給slave。
微博功能分析 UniqueSet 類 API 作用 實現原理 UniqueSet(client, key) 設定唯一集合的用戶端和鍵。 is_include(element) 檢查元素是否存在於唯一集合。 SISMEMBER add(element) 將元素添加到唯一集合。
事務 Redis 的事務功能允許使用者將多個命令包裹起來,然後一次性地、按順序地執行被包裹的所有命令。在事務執行的過程中,伺服器不會中斷事務而改去執行其他命令請求,只有在事務包裹的所有命令都 被執行完畢之後,伺服器才會去處理其他命令請求。 命令 作用 MULTI 開始一個新的事務。 DISCARD 放棄事務。 EXEC
在之前對Redis的介紹中,可以看到鏈表的使用頻率非常高。 鏈表可以作為單獨的儲存結構,比如用戶端的監視鏈表記錄該用戶端監視的所有鍵,伺服器的模式訂閱鏈表記錄所有用戶端和它的模式訂閱。 鏈表也可以內嵌到字典中作為字典的實值型別,比如資料庫的監視字典使用鏈表格儲存體監視某個鍵的所有用戶端,伺服器的訂閱字典使用鏈表格儲存體訂閱某個頻道的所有用戶端。 鏈表結構 節點 Redis中的鏈表是雙向鏈表,即每一個節點都儲存了它的前驅節點和後繼節點,用於提高操作效率。節點定義如下
Redis簡介 REmote DIctionary Server(遠程字典伺服器),是完全開源免費的,用c語言寫的,遵循BSD協議,是一個高效能(kv)分布式記憶體資料庫,基於記憶體運行並支援持久化的NoSQL資料庫,是當前最熱門的NoSQL資料庫之一,也被人們稱為資料結構伺服器。 Redis的三個特點 1、資料持久化:將記憶體資料儲存到硬碟中,重啟的時候可再次載入使用 2、kv,list,set,zset,hash 3、支援資料備份,即master/slave 模式的資料備份
linux機器上安裝redis是非常容易的,這裡不做介紹了。因為要學習主從複製功能,而我手上又只有一台機器,所以就需要在一台機器上啟動多個redis執行個體。我們需要將預設的redis.conf檔案複製一份,然後修改一下對應的設定就可以了,保證多個redis執行個體不出現共用資料就可以了。 #拷貝一份新的設定檔>cp redis.conf redis6001.conf#vi修改對應的配置項>vi redis6001.conf#主要修改下面3個配置項就可以了pidfile :
請注意,本教程使用於Redis3.0(包括3.0)以上版本 Redis叢集介紹 Redis 叢集是一個提供在多個Redis間節點間共用資料的程式集。 Redis叢集並不支援處理多個keys的命令,因為這需要在不同的節點間移動資料,從而達不到像Redis那樣的效能,在高負載的情況下可能會導致不可預料的錯誤. Redis 叢集通過分區來提供一定程度的可用性,在實際環境中當某個節點宕機或者不可達的情況下繼續處理命令.Redis 叢集的優勢:
對之前的nginx+tomcat的負載平衡機制,因為會出現session丟失的問題,特研究了下redis的session共用;(如果想搭建本環境可從上一篇開始,涉及到nginx的環境搭建http://blog.csdn.net/qq584852076/article/details/46469141) 下載JDK7、tomcat7以備後續測試;
高可用Redis服務架構分析與搭建 文章轉自:http://www.cnblogs.com/xuning/p/8464625.html
下面介紹一種基於redis的搶紅包方案。 把原始的紅包稱為大紅包,拆分後的紅包稱為小紅包。 1.小紅包預先產生,插到資料庫裡,紅包對應的使用者ID是null,紅包產生演算法如下: 預先產生所有的紅包還是一個請求隨機產生一個紅包 簡單來說,就是把一個大整數m分解(直接以“分為單位,如1元即100)分解成n個小整數的過程,小整數的範圍是[min, max]。
Redis分布式鎖的正確實現方式(Java版) 分布式鎖一般有三種實現方式:1. 資料庫樂觀鎖;2. 基於Redis的分布式鎖;3.
業務需求中經常有需要用到計數器的情境:譬如一個手機號一天限制發送5條簡訊、一個介面一分鐘限制多少請求、一個介面一天限制調用多少次等等。使用Redis的Incr自增命令可以輕鬆實現以上需求。以一個介面一天限制調用次數為例: /** * 是否拒絕服務 * @return */private boolean denialOfService(String userId){long count=JedisUtil.setIncr(DateUtil.getDate()+"&"
1. redis.conf 配置參數: #是否作為守護進程運行 daemonize yes #如以後台進程運行,則需指定一個pid,預設為/var/run/redis.pid pidfile redis.pid #綁定主機IP,預設值為127.0.0.1 #bind 127.0.0.1 #Redis預設監聽連接埠 port 6379 #用戶端閑置多少秒後,中斷連線,預設為300(秒)
redis安裝 在安裝redis之前,需要安裝gcc編譯器。然後從官網下載redis的解壓包,上傳至伺服器指定的目錄,然後解壓、編譯。安裝的時候要指定安裝目錄。 安裝 gcc 編譯器,利用 yum 源進行安裝,如果不能線上安裝,請掛載鏡像,安裝本地 yum源,然後安裝。命令:yum install gcc-c++ 解壓安裝包 命令:tar -zxvf 檔案名稱
redis的持久化有rdb和aof兩種。 rdb是記錄一段時間內的操作,一盤的配置是一段時間內操作超過多少次就持久化。 aof可以實現每次操作都持久化。 這裡我們使用aof。 配置方式,開啟redis的設定檔。找到appendonly。預設是appendonly no。改成appendonly yes。 再找到appendfsync 預設是: