CentOS下安裝Redis
下載下傳fedora的epel倉庫
yum install epel-release -y
安裝redis
yum install redis -y
啟動redis服務
systemctl start redis
檢視redis狀态
systemctl status redis
停止redis服務
systemctl stop redis
重新開機redis服務
systemctl restart redis
檢視redis程序
ps -ef | grep redis
設定redis開機自啟動
systemctl enable redis
String資料類型
String基本使用
1. 增
set指令給key設定value
127.0.0.1:6379> set name buddha
OK
2. 删
del指令删除key-value
127.0.0.1:6379> del name
(integer) 1
3. 改
set指令覆寫之前操作
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> set name buddha
OK
127.0.0.1:6379> get name
"buddha"
4. 查
get指令取值,不存在傳回nil
127.0.0.1:6379> get name
"buddha"
127.0.0.1:6379> get age
(nil)
5. string類型其它用法
getset,擷取key值後給key指派
127.0.0.1:6379> getset age 18
(nil)
127.0.0.1:6379> get age
"18"
incr,累加1
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
decr,遞減1
127.0.0.1:6379> set num 10
OK
127.0.0.1:6379> get num
"10"
127.0.0.1:6379> decr num
(integer) 9
127.0.0.1:6379> get num
"9"
incrby,按照x值累加
127.0.0.1:6379> incrby num 2
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> incrby num 2
(integer) 4
127.0.0.1:6379> get num
"4"
decrby,按照x值遞減
127.0.0.1:6379> decrby num 2
(integer) -2
127.0.0.1:6379> decrby num 2
(integer) -4
127.0.0.1:6379> get num
"-4"
append,在key的value後面追加
127.0.0.1:6379> set num 0
OK
127.0.0.1:6379> append num 2
(integer) 2
127.0.0.1:6379> get num
"02"
127.0.0.1:6379> append num 2
(integer) 3
127.0.0.1:6379> get num
"022"
setex,給key設定過期時間
127.0.0.1:6379> setex code 60 424119
OK
127.0.0.1:6379> get code
"424119"
127.0.0.1:6379> get code
(nil)
String使用場景
- 資料緩存
- 網站文章總數
- 商品總數
- 訂單總數
- 計數器
- 粉絲數
- 關注人數
- 驗證碼
- token存儲
- ......
Hash資料類型
Hash基本使用
hset和hget,設定x對象鍵值對和擷取x對象鍵值對的值
127.0.0.1:6379> hset zs name zhangsan
(integer) 1
127.0.0.1:6379> hset zs age 20
(integer) 1
127.0.0.1:6379> hset zs height 180
(integer) 1
127.0.0.1:6379> hset zs sex 1
(integer) 1
127.0.0.1:6379> hget zs name
"zhangsan"
127.0.0.1:6379> hget zs age
"20"
127.0.0.1:6379> hget zs height
"180"
127.0.0.1:6379> hget zs sex
"1"
hmset和hmget,設定x對象多個鍵值對和擷取x對象多個鍵值對的值
127.0.0.1:6379> hmset ls name lisi age 24 height 178 sex 1
OK
127.0.0.1:6379> hmget ls name age height sex
1) "lisi"
2) "24"
3) "178"
4) "1"
hkeys和hvals,擷取x對象所有鍵和擷取x對象所有值
127.0.0.1:6379> hkeys ls
1) "name"
2) "age"
3) "height"
4) "sex"
127.0.0.1:6379> hvals ls
1) "lisi"
2) "24"
3) "178"
4) "1"
Hash使用場景
- 資料庫整張表放到redis hash裡面
List資料類型
List基本使用
lpush和lpop,左邊入隊和左邊出隊
127.0.0.1:6379> lpush list a b c
(integer) 3
127.0.0.1:6379> lpop list
"c"
rpush和rpop,右邊入隊和右邊出隊
127.0.0.1:6379> rpush list 1 2 3
(integer) 5
127.0.0.1:6379> rpop list
"3"
lrange,檢視清單
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "a"
3) "1"
4) "2"
llen,清單元素個數
127.0.0.1:6379> llen list
(integer) 4
List使用場景
- 秒殺
- 消息
Set資料類型
Set基本使用
sadd和smembers,添加元素和查詢元素
127.0.0.1:6379> sadd group_01 zs ls we mz
(integer) 4
127.0.0.1:6379> sadd group_02 zs ls xc xq
(integer) 4
127.0.0.1:6379> smembers group_01
1) "mz"
2) "we"
3) "zs"
4) "ls"
127.0.0.1:6379> smembers group_02
1) "xc"
2) "zs"
3) "xq"
4) "ls"
sdiff,差集
127.0.0.1:6379> sdiff group_01 group_02
1) "mz"
2) "we"
127.0.0.1:6379> sdiff group_02 group_01
1) "xc"
2) "xq"
sinter,交集
127.0.0.1:6379> sinter group_01 group_02
1) "zs"
2) "ls"
sunion,并集
127.0.0.1:6379> sunion group_01 group_02
1) "we"
2) "xc"
3) "mz"
4) "zs"
5) "ls"
6) "xq"
scard,檢視集合元素個數
127.0.0.1:6379> scard group_01
(integer) 4
127.0.0.1:6379> scard group_02
(integer) 4
srandmember,随機提取元素
127.0.0.1:6379> srandmember group_01
"mz"
127.0.0.1:6379> srandmember group_01
"ls"
srem,删除集合元素
127.0.0.1:6379> srem group_01 we
(integer) 1
Set使用場景
- 唯一性資料
sorted-set資料類型
sorted-set基本使用
zadd,添加元素
127.0.0.1:6379> zadd sorted 85 xiaoming
(integer) 1
127.0.0.1:6379> zadd sorted 88 xiaofang 90 xiaocheng
(integer) 2
zscore,擷取x元素
127.0.0.1:6379> zscore sorted xiaoming
"85"
zcard,擷取元素個數
127.0.0.1:6379> zcard sorted
(integer) 3
zrange,範圍查詢,由小到大
127.0.0.1:6379> zrange sorted 0 -1
1) "xiaoming"
2) "xiaofang"
3) "xiaocheng"
zrevrange,範圍查詢,由大到小
127.0.0.1:6379> zrangebyscore sorted 88 100 withscores
1) "xiaofang"
2) "88"
3) "xiaocheng"
4) "90"
sorted-set使用場景
- 唯一性資料+排序
Redis持久化
持久化,就是防止redis在記憶體中出現意外丢失了資料,想恢複回去做的備份。
1. 找到redis.conf配置檔案
[root@localhost ~]# systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service;
[root@localhost ~]# cat /usr/lib/systemd/system/redis.service
[Service]
ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd
2. 持久化檔案的查找
[root@localhost ~]# find / -name dump.rdb
/var/lib/redis/dump.rdb
[root@localhost ~]# find / -name appendonly.aof
/var/lib/redis/appendonly.aof
3. aof持久化檔案修複
redis-check-aof --fix appendonly.aof
4. 定時任務定時備份rdb和aof檔案,以防不時之需