redis 從0開始的redis複習之路

2021-10-09 15:17:14 字數 1640 閱讀 6664

redis介紹

redis(remote dictionary server ),即遠端字典服務,是乙個開源的使用ansi c語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。

和其他的快取比如ecache比較

redis 搭建

通過原始碼編譯安裝

wget 

tar xzf redis-5.0.0.tar.gz

cd redis-5.0.0

make

啟動命令
# 服務端啟動

./bin/redis-server ./etc/redis.conf

# 客戶端啟動 -h 為位址預設為本機 ,-a為 auth 密碼

./bin/redis-cli -h 127.0.0.1 -p 6379 -a 123456

通過docker-compose 安裝
由於redis 跨平台型,我們可以通過docker 進行快速搭建。docker-compose 是乙個docker的編排工具。在之後搭建redis 主從和哨兵的時候通過docker-compose 可以減少我們的工作量。

version

:'2'

services

:redis

:image

: redis:5.0.0

container_name

: redis

command

: redis-server -

-requirepass "123456"

ports:-

"6379:6379"

volumes

:- ./data:/data

redis 持久化
redis 的鍵值對是儲存在記憶體中的,如果宕機之後所有的鍵值對都會丟失。所以需要配置落盤。

rdb
rdb 會生成多個檔案,每乙個資料檔案都代表著,某乙個時刻redis 裡面的資料。

因為直接操作記憶體,通過rdb 恢復資料通常會比aof 恢復快。

缺點是,如果中途宕機,可能會有幾分鐘的資料丟失。

aof

aof 中存在的問題在於,由於只操作乙個檔案,可能導致這個檔案很大,所以redis 提供bgrewriteaof 指令重寫aof檔案。

生產環境 資料備份策略

參考shell 指令碼

crontab -e 

0 * * * * * sh /etc/init.d/redisback.sh

redisback.sh

#!/bin/sh

cur_date =

'date +%y%m%d%k'

rm -rf /lujing/$cur_date

mkdir /lujing/$cur_date

cp /var/redis/6379/dump/rdb /lujing/$cur_date

del_date =

'date -d -48hour +%y%m%d%k'

rm -rf /lujing/$del_date

序列化注意事項

參考文獻

Redis原始碼學習 開始(0)

秋招結束了很長時間了,我如當時所想,找到了一家還不錯的it公司,拿到了offer,下半個學期就要去實習了。當然,並不意味著技術學習的停滯,反而恰恰是個新的起點,意味著以後要熟悉各種工具,各種框架等實際場合使用的東西。當然,閒暇之餘,對於我這樣的萌新來說,底層的內容還是要打好基礎,學無止境。當看到的東...

從0開始 二

slam是指當某種移動裝置 如機械人 無人機 手機等 從乙個未知環境裡的未知地點出發,在運動過程中通過感測器 如雷射雷達 攝像頭等 觀測定位自身位置 姿態 運動軌跡,再根據自身位置進行增量式的地圖構建,從而達到同時定位和地圖構建的目的。sfm structure from motion 是一種和sl...

redis學習 01 開始的開始

海量使用者 高併發 效能瓶頸 磁碟io效能低下 擴充套件瓶頸 資料關係複雜,擴充套件性差,不便於大規模集群 降低磁碟io次數,越低越好 記憶體儲存 去除資料間關係,越簡單越好 不儲存關係,僅儲存資料nosql 即 not only sql 泛指非關係型的資料庫 作為關係型資料庫的補充。作用 應對基於...