windows
下載
https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100
然后解壓

打開服務
然后打開客服端

Linux
下載地址
https://download.redis.io/releases/redis-6.2.5.tar.gz
https://mirrors.huaweicloud.com/redis/ 鏡像
然后傳到服務器上
移動到opt目錄下
mv redis-6.2.5.tar.gz /opt
解壓安裝包
tar -zxvf redis-6.2.5.tar.gz
解壓完進去
安裝
yum install gcc-c++
然后配置環境
make
make 確認一下 可有可無
make install
這就安裝完畢了
默認安裝路徑
/usr/local/bin
然后在這個里面建一個檔案夾把 redis.conf 復制過去
mkdir lybconfig
cp /opt/redis-6.2.5/redis.conf lybconfig/
修改一下redis.conf改成以后臺方式啟動

保存退出
開啟服務
redis-server lybconfig/redis.conf 用哪個開啟服務

開啟客戶端
redis-cli -p 6379

關閉服務

五大基本型別
Redis命令中心(Redis commands) -- Redis中國用戶組(CRUG)

看存在不

move name 1 洗掉
EXPIRE name 10 多久過期 expire
ttl name 離過期還有多久
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> TYPE age #查看型別
string
String
get name顯示全部
127.0.0.1:6379> APPEND name love #往后面追加 有了追加 沒有新建
(integer) 7
127.0.0.1:6379> get name
"lyblove"
127.0.0.1:6379> STRLEN name #獲得字串長度strlen
(integer) 7
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> INCR views #加一 in cr
(integer) 1
127.0.0.1:6379> DECR views #減一 de cr
(integer) 0
127.0.0.1:6379> INCRBY views 10 #帶步長的
(integer) 10
127.0.0.1:6379> decrby views 10 #帶步長
(integer) 0
?
截取 從 0開始
127.0.0.1:6379> GETRANGE name 3 -1 #獲取[3,最后] getrange range區間,范圍
"love"
127.0.0.1:6379> GETRANGE name 3 4 #[3,4]
"lo"
?
127.0.0.1:6379> get name
"lyblove"
127.0.0.1:6379> SETRANGE name 0 xxx #修改 他是相當于依次替換
(integer) 7
127.0.0.1:6379> get name
"xxxlove"
127.0.0.1:6379> SETEX a 20 "asdasd" #這個和EXPIRE 不一樣EXPIRE是設定存在的 這個不管純不存在都會替換并添加過期時間
OK
127.0.0.1:6379> setnx name aaa #不存在name 就設置 存在了沒有用
(integer) 0
127.0.0.1:6379> get name
"xxxlove"
127.0.0.1:6379> mset k1 1 k2 2 k3 3 #批量設定
OK
127.0.0.1:6379> mget k1 k2 k3 #批量獲取
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> MSETNX k1 2222 k9 9 #這個是都要成功 原子性 nx不存在時
(integer) 0
127.0.0.1:6379> mget k1 k9 #沒設定成功
1) "1"
2) (nil)
127.0.0.1:6379> getset name lyb #先獲取再設定
(nil)
127.0.0.1:6379> get name
"lyb"
?
?
?
List
lpush list one #放左邊 left
lrange list 0 -1顯示全部
放入值
---------------------------------------------------------------------------------------
127.0.0.1:6379> lpush list one #放左邊 left
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #顯示全部 l 是 list
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> rpush list 000 #放右邊
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "000"
---------------------------------------------------------------------------------------
洗掉值
127.0.0.1:6379> LPOP list #左洗掉
"three"
127.0.0.1:6379> RPOP list #右洗掉
"000"
---------------------------------------------------------------------------------------
獲取
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> LINDEX list 0 #獲取 list[0]
"two"
127.0.0.1:6379> LINDEX list 1 #獲取 list[1]
"one"
127.0.0.1:6379> llen list #長度
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "one"
2) "one"
3) "one"
4) "two"
5) "one"
127.0.0.1:6379> LREM list 1 one #移除一個 one 具體的值
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "one"
2) "one"
3) "two"
4) "one"
?
---------------------------------------------------------------------------------------
截取
127.0.0.1:6379> rpush list 0 1 2 3 4 5
(integer) 6
127.0.0.1:6379> LRANGE list 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
127.0.0.1:6379> ltrim list 1 3 #截取 [1,3]
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "1"
2) "2"
3) "3"
---------------------------------------------------------------------------------------
移動
127.0.0.1:6379> RPUSH list 0 1 2 3 4 5 6 last
(integer) 8
127.0.0.1:6379> RPOPLPUSH list newlist # right pop | l push 把list的取出來放到newklist
"last"
127.0.0.1:6379> LRANGE list 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379> LRANGE newlist 0 -1
1) "last"
---------------------------------------------------------------------------------------
修改
127.0.0.1:6379> LRANGE list 0 -1
