Redis-1 入門

官網(wǎng): https://redis.io/
參考: http://redisdoc.com/

Redis 介紹

Redis是一個(gè)開源項(xiàng)目(BSD許可證), 內(nèi)存數(shù)據(jù)庫, 用作數(shù)據(jù)庫、緩存和消息代理.
它支持的數(shù)據(jù)結(jié)構(gòu)包括:

字符串、散列、列表、集合、帶有范圍查詢的排序集、位圖、日志, 帶有半徑查詢的地理空間索引.

Redis具有內(nèi)置的復(fù)制、Lua腳本、LRU回收、事務(wù)和不同級(jí)別的磁盤持久化,并通過Redis Sentinel和Redis Cluster自動(dòng)分區(qū)來提供高可用性.

key:
任何二進(jìn)制序列都可以作為key, 像name簡單的字符串, 一個(gè)jpeg文件都可以, 空串也是可以的, 但是不要太長, 消耗內(nèi)存效率低, 也不要太短, 可讀性差.

value:
字符串, 列表, 散列, 集合, 有序集合, HyperLogLog字符串是基本的值類型, 圖片也行, 序列化后的對象也行, 但是最多能存512M字節(jié)內(nèi)容.

Redis命令

https://redis.io/commands

Redis安裝與卸載

#安裝
$sudo apt-get update
$sudo apt-get install redis-server

#卸載
apt-get purge --auto-remove redis-server

然后再刪除redis文件. rdb, aof, log文件
# 如果卸載的時(shí)候會(huì)出現(xiàn)unknown user 'redis' in statoverride file
# 解決方法
#1: open /var/lib/dpkg/statoverride
#2: should see root redis
#3: dpkg-statoverride --remove xxx

Redis客戶端

一般使用 Redis Desktop Manager

如何使局域網(wǎng)可以訪問

1: 修改 etc/redis/redis.conf
2: redis.windows.conf
3: 修改: protected-mode no, 他是為了禁止公網(wǎng)訪問redis cache,加強(qiáng)redis安全的, 它啟用的條件,有兩個(gè):
 a: 沒有bind IP
 b: 沒有設(shè)置訪問密碼
4: 增加 requirepass 111111

Redis 常見命令

命令 描述 例子
redis-server 啟動(dòng)服務(wù)端
redis-cli 啟動(dòng)客戶端
service redis restart 重啟服務(wù)端
v 用服務(wù)端查看版本 redis-server -v
info 用客戶端查看版本 redis-cli info
auth 輸入密碼 auth "yourpassword"
ss -tanl 查看端口是否被使用, 這個(gè)是linux的命令
help 查看幫助. help @string, 關(guān)于string的全部會(huì)出來
flushdb 清掉所有數(shù)據(jù) flushdb
keys 查看鍵 keys * 查看所有鍵
get 獲取設(shè)置的值 get {key}

Redis 持久化

1: 為什么要持久化

持久化是將數(shù)據(jù)從掉電易失的內(nèi)存存放到磁盤設(shè)備上(默認(rèn)名:dump.rdb), 因?yàn)镽edis默認(rèn)是基于內(nèi)存的, 不存到磁盤上.
持久化2種方式:
1: RDB Redis DB(保存二進(jìn)制數(shù)據(jù), 省空間, 默認(rèn)為dump.rdb)
2: AOF AppendOnlyFile(存的是命令), 默認(rèn)是不開啟的

2: 如何持久化

RDB, AOF可以同時(shí)執(zhí)行, 但是RDB很耗時(shí), 所以操作不能太頻繁, 否則性能不好. 備份文件一般存放到/var/lib/redis/dump.rdb中, 具體是在redis.conf中配置的.
1: SAVE: Redis服務(wù)器將被阻塞, 無法處理客戶端發(fā)送的命令
2: BGSAVE: 這個(gè)是后臺(tái)(Background)執(zhí)行的. 不阻塞
3: 滿足條件后自動(dòng)持久化, 默認(rèn)下面的任何一種成立, 則持久化, 實(shí)際使用的是BGSAVE
SAVE 900 1 #距離上次創(chuàng)建RDB文件900秒, 且發(fā)生了一次修改.
SAVE 300 10
SAVE 60 10000
說明: SAVE 300 10: 過去300秒, 且所有數(shù)據(jù)庫總共發(fā)生了不少于10次的修改.

AOF是寫入命令的, 每執(zhí)行一條修改的, 都會(huì)生成一個(gè)命令, 比RDB相對安全一些, 在遭遇停機(jī)的時(shí)候造成數(shù)據(jù)丟失, 取決于命令被寫到硬盤的時(shí)間, 他有3中策略(Always, Everysec, No)

appendonly yes
appendfilename "appendonly.aof"
appendfsync always

Always: 每寫一個(gè)命令, 就調(diào)用一次寫操作. 因此比較安全, 但是造成性能偏低,速度慢
Everysec: 每秒寫一次(默認(rèn)值)
No: 不主動(dòng)調(diào)用fdatasync.由服務(wù)器決定何時(shí)寫.
在conf中appendonly節(jié)點(diǎn)上.
隨著時(shí)間推移, 備份文件越來越大, 就需要壓縮, 如何壓縮, 2種方法:
1: 客戶端發(fā)送BGREWRITEAOF (只保留最后一次的)
2: conf中設(shè)置 auto-aof-rewrite-min-size

2: 如何還原備份的文件

對于備份RDB文件和AOF文件都可以采用拷貝的方式還原.
把RDB文件拷貝到conf文件設(shè)置的路徑, 重啟(service service redis restart)后即可.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容