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