mkdir /usr/local/redis && cd /usr/local/redis 下載:wget http://download.redis.io/releases/redis-3.0.5.tar.gz 解壓:tar xzf redis-3.0.5.tar.gz 安裝到指定目錄: cd redis-3.0.5 make PREFIX=/usr/local/redis install
複製並重命名腳本
cp /usr/local/redis/redis-3.0.5/utils/redis_init_script /etc/rc.d/init.d/redisredis
由於默認redis服務不支持chkconfig,因此須要修改redis腳本,增長:
#chkconfig: 2345 80 90
注意腳本中EXEC、CLIEXEC的路徑是否正確(對應redis-server、redis-cli的安裝目錄)數據庫
複製conf文件到相應位置,與腳本中CONF配置一致
cp /usr/local/redis/redis-3.0.5/redis.conf /etc/redis/6379.conf緩存
添加並啓動服務
chkconofig --add redis
service redis start安全
vi /etc/profile export PATH="$PATH:/usr/local/redis/bin" 這樣咱們能夠直接使用redis-cli來鏈接redis服務器了,不用每次都跑到bin目錄下執行命令。
redis-server --version // 查看服務端版本 redis-cli --version // 查看客戶端版本 或者鏈接redis server後使用info命令也能夠查看
redis的鍵老是一個字符串對象,而值則能夠是任意一種Redis對象類型,包括字
符串對象、哈希表對象、列表對象、集合對象和有序集合對象,分別對應字符串鍵
哈希表鍵、列表鍵、集合鍵和有序集合鍵。服務器
redis會根據不一樣的使用場景來爲一個對象設置不一樣的編碼,從而來優化對象在某一場景下的效率。app
由於redis是內存數據庫,它將本身的數據庫狀態儲存在內存裏面,因此若是不想辦法將儲存在內存中的數據庫狀態保存到磁盤裏面,那麼一旦服務器進程退出,服務器中的數據庫狀態也會消失不見。
爲了解決這個問題,redis提供了兩種持久化機制:RDB & AOF。能夠將redis在內存中的數據庫狀態保存到磁盤特定文件裏,在redis服務器啓動之初會讀取該文件來從新構建數據庫,以保證啓動後數據庫中的數據是完整的。優化
在指定的時間間隔內將內存中的數據集快照寫入磁盤。編碼
save // 阻塞服務器其它操做 bgsave // 經過子進程執行,非阻塞
根據conf配置文件中save選項來設置:
如圖,默認900秒1次修改、300秒10次修改、60秒10000次修改redis會自動執行RDB持久化。spa
以日誌的形式記錄服務器所處理的每個寫操做,若是服務器開啓了AOF持久化(appendonly yes)功能,那麼服務器會優先使用AOF文件來還原數據庫狀態。日誌
追加至aof_buf緩存區 -> 文件寫入 -> 文件同步(保存),服務器配置的appendfsync選項的值直接決定AOF持久化功能的效率和安全性。
由於AOF持久化是經過保存被執行的寫命令來記錄數據庫狀態的,因此隨着服務器運行時間的流逝,AOF文件中的內容會愈來愈多,文件的體積也會愈來愈大,若是不加以控制的話,體積過大的AOF文件極可能對redis服務器、甚至整個宿主計算機形成影響,而且AOF文件的體積越大,使用AOF文件來進行數據還原所需的時間就越多。
爲了解決AOF文件體積膨脹的問題,redis提供了AOF文件重寫(rewrite)
功能。經過該功能,redis服務器能夠建立一個新的AOF文件來替代現有的AOF文件,新舊兩個AOF文件所保存的數據庫狀態相同,但新AOF文件不會包含任何浪費空間的冗餘命令,因此新AOF文件的體積一般會比舊AOF文件的體積要小得多。
手動執行:
bgrewriteaof
設置自動觸發條件: