Redis自學第一天

  

 

 

 

5種數據類型:string、hash、list、set、sorted_set

原理分別對應String、HashMap、Linkedlist、HashSet、TreeSet

String常用指令

strlen 長度

incr 自增+1

incyby 指定增長數量

incybyfloat 

decy

decyby 

setex 秒級單位 設置value時效 

psetex  毫秒級單位 設置value時效

附上文章自學內容的視頻鏈接https://www.bilibili.com/video/BV1CJ411m7Gc?p=47

Linux下安裝redis出現的問題及解決方法

安裝redis出現cc adlist.o /bin/sh:1:cc:not found的解決方法

安裝redis時 提示執行make命令時提示 CC adlist.o /bin/sh: cc: 未找到命令

問題原因:這是由於系統沒有安裝gcc環境,因此在進行編譯時纔會出現上面提示,當安裝好gcc後再進行編譯時,上面錯誤提示將消失。

解決方法:

安裝gcc

[ckl@localhost ~]$ yum -y install gcc automake autoconf libtool make

安裝c編譯器並編譯

[root@bogon redis-3.2.0]# make

cd src && make all

make[1]: 進入目錄“/usr/local/redis-3.2.0/src”

CC adlist.o

/bin/sh: cc: 未找到命令

make[1]: *** [adlist.o] 錯誤 127

make[1]: 離開目錄“/usr/local/redis-3.2.0/src”

make: *** [all] 錯誤 2

安裝c編譯器並編譯

[root@bogon redis-3.2.0]# yum install gcc-c++ 

[root@bogon redis-3.2.0]# make

cd src && make all

make[1]: 進入目錄“/usr/local/redis-3.2.0/src”

CC adlist.o

In file included from adlist.c:34:0:

zmalloc.h:50:31: 致命錯誤:jemalloc/jemalloc.h:沒有那個文件或目錄

#include <jemalloc/jemalloc.h>                              ^

編譯中斷。

make[1]: *** [adlist.o] 錯誤 1

make[1]: 離開目錄“/usr/local/redis-3.2.0/src”

make: *** [all] 錯誤 2

解決“jemalloc/jemalloc.h:沒有那個文件或目錄“問題,在進行編譯(因爲上次編譯失敗,有殘留的文件)

[root@bogon redis-3.2.0]# make distclean

[root@bogon redis-3.2.0]# make && make install

 

如何使用後臺啓動redis

配置redis conf  

//過濾掉註釋 和 空格 查看redis.conf 文件 並複製出來一份名爲redis-6379.conf 的文件到當前目錄   

cat redis.conf | grep -v "#" | grep -v "^$" > redis-6379.conf 

文件修改屬性

port 6379
daemonize yes
logfile "6379.log"
dir /root/redis-4.0.14/data   //需要在redis-4.0.14目錄下 通過 mkdir data 命令創建

配置文件修改好 就可以在 redis-4.0.14目錄下 通過 redis-server redis-6379.conf 命令後臺啓動 

ps -ef | grep redis-   //查看所有爲redis-的進程

root       7537      1  0 14:13 ?        00:00:00 redis-server *:6379
root       7558   7387  0 14:14 pts/0    00:00:00 grep --color=auto redis-

如上有redis-server* :6379 代表啓動成功

後續可通過redis-cli 命令啓動客戶端 進行操作驗證redis服務器 是否有啓動成功

Redis自學第二天

redis的持久化保存 

redis持久化一般有兩種方式 RDB 和 AOF

RDB又稱爲快照 AOF以日誌形式保存(正常開發都是用AOF)

RDB啓動方式有save和bgsave指令啓動

sava指令是同步的 不會額外增加內存消耗 

bgsave指令後臺啓動 是異步的 但是會額外增加內存消耗  會啓動一個新進程

RDB優點

是以二進制的方式存儲 存儲效率高

它是某個時間點的數據快照 恢復數據速度比AOF快 適合全量複製 數據備份的場景

例如 每小時執行bgsave指令 將數據快照拷貝到遠程機器備份 用於災難恢復

RDB缺點

RDB無法做到實時的持久化

RDB每次都需要讀寫全部數據 數據量大時效率低下 IO性能較低

RDB使用bgsave要通過linux的forx函數創建一個子進程 消耗內存資源

redis的RDB版本未統一 有可能版本不同導致數據格式不兼容

save的配置

redis-server redis-6379.conf

port 6379
daemonize yes
logfile "6379.log"
dir /root/redis-4.0.14/data 

dbfilename dump-6379.rdb

rdbcomperssion yes

rdbchecksum yes

save 1000 1  //在1000秒內發生1次數據變化 執行save指令保存

AOF日誌形式存儲

AOF寫數據三種策略

appendfsync  1.always 每次操作都寫入 everysec 每秒寫入一次 no 系統控制寫入

開啓AOF支持

appendonly yes

開啓AOF策略

appendfsync everysec(通常使用everysec策略 性能適中) always 每次寫入性能較低  no無法控制 

appendfilename  filename 修改AOF配置文件名 建議配置爲 appendonly-端口號.aof

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章