1. 程式人生 > >21.9 redis介紹;21.10 redis安裝;21.11 redis持久化;21.12

21.9 redis介紹;21.10 redis安裝;21.11 redis持久化;21.12

redis數據類型

21.9 redis介紹

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

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

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

4. redis使用了兩種文件格式:全量數據(RDB)和增量請求(aof)。全量數據格式是把內存中的數據寫入磁盤,便於下次讀取文件進行加載。增量請求文件則是把內存中的數據序列化為操作請求,用於讀取文件進行replay得到數據,這種類似於mysql binlog。

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

21.10 redis安裝

1. 進入

[root@hao-01 ~]# cd /usr/local/src/

2. 下載

[root@hao-01 src]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz

3. 解壓

[root@hao-01 src]# tar zxvf redis-4.0.1.tar.gz

4. 進入

[root@hao-01 src]# cd /usr/local/src/redis-4.0.1

5. 編譯

[root@hao-01 redis-4.0.1]# make

[root@hao-01 redis-4.0.1]# echo $?

6. 安裝

[root@hao-01 redis-4.0.1]#

make install

[root@hao-01 redis-4.0.1]# echo $?

7. 查找redis-cli安裝的絕對路徑

[root@hao-01 redis-4.0.1]# which redis-cli

8. 拷貝redis.conf/etc/下:

[root@hao-01 redis-4.0.1]# cp redis.conf /etc/

9. 編輯/etc/redis.conf

[root@hao-01 redis-4.0.1]# vim /etc/redis.conf

更改1:daemonize yes

技術分享圖片

更改2:logfile "/var/log/redis.log"

技術分享圖片

更改3:dir /data/redis

技術分享圖片

更改4:appendonly yes

技術分享圖片

9. 創建

[root@hao-01 redis-4.0.1]# mkdir /data/redis

10. 執行內核參數:

[root@hao-01 redis-4.0.1]# sysctl vm.overcommit_memory=1

[root@hao-01 redis-4.0.1]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

11. 編輯/etc/rc.local,把內核參數加入,使其開機啟動就生效:

[root@hao-01 redis-4.0.1]# vim /etc/rc.local

添加內容:

sysctl vm.overcommit_memory=1

echo never > /sys/kernel/mm/transparent_hugepage/enabled

技術分享圖片

12. 啟動

[root@hao-01 redis-4.0.1]# redis-server /etc/redis.conf

13. 搜索是否啟動?

[root@hao-01 redis-4.0.1]# ps aux |grep redis

21.11 redis持久化

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

2. RDB,簡而言之,就是在不同的時間點,將redis存儲的數據生成快照並存儲到磁盤等介質上。

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

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

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

21.12 redis數據類型

Redis數據類型-string

string為最簡單的類型,與Memcached一樣的類型,一個key對應一個value,其支持的操作與Memcached的操作類似,它的功能更豐富。設置可以存二進制的對象。

示例:

1. 連接進入redis命令行,設定mykey值

[root@hao-02 ~]# redis-cli

127.0.0.1:6379> set mykey "123"

技術分享圖片

2. 獲取mykey值

127.0.0.1:6379> get mykey

技術分享圖片

3. 同時設定多個k值

127.0.0.1:6379> mset k1 "1" k2 "2" k3 "c"

技術分享圖片

4. 同時獲取多個k值

127.0.0.1:6379> mget k1 k2 k3 mykey

技術分享圖片

Redis數據類型-list

list是一個鏈表結構,主要功能是push、pop、獲取一個範圍的所有值等等。操作中key理解為鏈表的名字。

使用 list 結構,我們可以輕松地實現最新消息排行等功能(比如新浪微博的 TimeLine )。list 的另一個應用就是消息隊列,可以利用 list 的 push操作,將任務存在 list 中,然後工作線程再用pop操作將任務取出進行執行。

示例:


21.9 redis介紹;21.10 redis安裝;21.11 redis持久化;21.12