1. 程式人生 > >21.9-21.12 Redis介紹,安裝,持久化介紹

21.9-21.12 Redis介紹,安裝,持久化介紹

操作 有序集合 enable 數據 內核參數 ren hash 安全 是把

21.09 Redis介紹

  • Redis和Memcached類似,也屬於k-v數據存儲

  • Redis官網redis.io, 當前最新穩定版4.0.1

  • 支持更多value類型,除了和string外,還支持hash、lists(鏈表)、sets(集合)和sorted sets(有序集合)

  • redis使用了兩種文件格式:全量數據(RDB)和增量請求(aof)。

  • 全量數據格式是把內存中的數據寫入磁盤,便於下次讀取文件進行加載。

  • 增量請求文件則是把內存中的數據序列化為操作請求,用於讀取文件進行replay得到數據,這種類似於mysql binlog。

  • redis的存儲分為內存存儲、磁盤存儲和log文件三部分


21.10 Redis 安裝

cd /usr/local/src/
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar zxvf redis-4.0.1.tar.gz
cd redis-4.0.1
make && make install
cp redis.conf /etc/redis.conf
vim /etc/redis.conf #修改如下配置

#把

daemonize no

#改成

daemonize yes

#no前臺啟動,yes後臺啟動

logfile "/var/log/redis.log"     #定義日誌文件
dir /data/redis/             #redis文件存放路徑
appendonly yes                   #開啟aof,aof名字:apendonly.aof
mkdir /data/redis

兩項內核參數,沒必要修改時保持默認

在rc.local添加此兩項參數,開啟時可以啟動

sysctl vm.overcommit_memory=1
echo never > /sys/kernel/mm/transparent_hugepage/enabled

啟動Redis服務

redis-server /etc/redis.conf

檢查進程

ps uax |grep redis
root     12428  0.0  0.1 145252  2168 ?        Ssl  17:37   0:00 redis-server 127.0.0.1:6379
root     12457  0.0  0.0 112660   968 pts/0    R+   17:38   0:00 grep --color=auto redis


21.11 Redis持久化

  • 前言:數據存放在內存裏,無論是讀和寫都是非常快的,但是如果重啟服務器或者重啟服務,數據都會因此丟失。所以,數據較為重要的話,需要實施數據持久化。

  • Redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)

  • RDB,簡而言之,就是在不同的時間點,將redis存儲的數據生成快照並存儲到磁盤等介質上。#簡單來說,就是把內存的數據做一個鏡像,然後完整映射存儲到磁盤上面。

  • 存儲方式是通過redis.conf的save參數來定義存儲方式。

  1. example,

  2. # save ""

  3. save 900 1

  4. save 300 10

  5. save 60 10000

  6. 滿足這3個條件則會觸發持久化存儲

  7. 如果把持久化關閉,則把save參數條件都deleted,然後把#save "" 註釋去掉,改成這樣

  8. save ""

  • AOF,則是換了一個角度來實現持久化,那就是將redis執行過的所有寫指令記錄下來,在下次redis重新啟動時,只要把這些寫指令從前到後再重復執行一遍,就可以實現數據恢復了。#數據隨著操作時間的增長而增長。

  • 其實RDB和AOF兩種方式也可以同時使用,在這種情況下,如果redis重啟的話,則會優先采用AOF方式來進行數據恢復,這是因為AOF方式的數據恢復完整度更高。

  • AOF有三種方式

  1. appendfsync always #一直寫,每次變更就寫

  2. appendfsync everysec #每秒寫

  3. appendfsync no #每隔一段時間寫,最不安全的

  • 如果你沒有數據持久化的需求,也完全可以關閉RDB和AOF方式,這樣的話,redis將變成一個純內存數據庫,就像memcache一樣。

  • 兩者對比,AOF保存比較存儲比較安全。


21.9-21.12 Redis介紹,安裝,持久化介紹