安裝Redis
-
下載:官網:https://redis.io/download/,選擇穩定版下載。
-
上傳至linux
-
解壓Redis:
tar -zxvf redis-6.2.7.tar.gz
,得到:
-
安裝gcc編譯環境,如果已經安裝過了,則跳過:
yum install gcc-c++
-
進入到
redis-6.2.7
目錄,進行安裝:make && make install
,執行完畢後安裝成功 -
.配置redis,在utils下,拷貝
redis_init_script
到/etc/init.d
目錄,目的要把redis作爲開機自啓動
-
創建
/usr/local/redis
,用於存放配置文件
-
拷貝redis配置文件,拷貝到
/usr/local/redis
下
-
修改
redis.conf
這個核心配置文件-
修改 daemonize no->daemonize yes,目的是爲了讓redis啓動在linux後臺運行
-
修改redis的工作目錄,建議修改爲
/usr/local/redis/working
,名稱隨意
-
修改如下內容,綁定IP改爲
0.0.0.0
,代表可以讓遠程連接,不受ip限制
-
最關鍵的是密碼,默認是沒有的,一定要設置
-
-
修改
redis_init_script
文件中的redis核心配置文件爲如下∶並修改redis的核心配置文件名稱爲:6379.conf
-
爲redis啓動腳本添加執行權限,隨後運行啓動redis;
-
檢查redis進程,至此redis安裝並且啓動成功
-
設置redis開機自啓動,修改
redis_init_script
,添加如下內容
#chkconfig:22345 10 90
#description: Start and Stop redis
隨後執行:chkconfig redis_init_script on
重啓服務器(虛擬機)後,再看進程。
SpringBoot整合Redis
- 引入Redis依賴
<!--引入 redis 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置redis
spring:
redis:
database: 1
host: 192.168.32.10
port: 6379
password: reminis
- controller測試
@Autowired
private RedisTemplate redisTemplate;
@GetMapping("/test")
public vid testRedis(String key, String value) {
redisTemplate.opsForValue().set(key, value);
(String)redisTemplate.opsForValue().get(key);
redisTemplate.delete(key);
}
Redis的命令客戶端
redis-cli -a password shutdown
:關閉redis./redis_init_script stop
:關閉reidsredis-cli
:進入redis客戶端auth password
:輸入密碼set key value
:設置緩存get key
:獲得緩存del key
:刪除緩存redis-cli -a password ping
:查看是否存活
Redis得數據類型
string字符串
string:最簡單的字符串類型鍵值對緩存,也是最基本的
- key相關
keys*
:查看所有的key(不建議在生產環境中使用,有性能影響)type key
:查看key的類型
- string類型
get/set/del
:查詢/設置/刪除set key vaue
:設置已存在key,會覆蓋setnx key value
:設置已存在的key,不會覆蓋set key value ex time
:設置帶過期時間的數據expire key
:設置過期時間ttl
:查看過期時間,-1永不過期,-2已過期append key
:合併字符串長度strlen key
:字符串長度incr key
:累加1decr key
:累減1incrby key num
:累加給定數值decrby key num
:累減給定數值getrange key start end
:截取數據,end=-1代表到最後setrange key start newdata
:從start位置開始替換數據mset
:批量設值mget
: 批量取值msetnx
:批量設值,如果存在則不設值
- 其它
select index
:切換數據庫,總共默認16個flushdb
:刪除當前db下邊的所有數據flushall
:刪除所有db中的數據
hash
hash:類似map,存儲結構化數據,比如存儲一個對象(不能嵌套對象)
使用
-
hset key property value
。如 hset user name reminis(創建一個user對象,這個對象中包含user屬性,name的值爲reminis),hget user name
:獲得用戶對象中name的值 -
hmset
:設置對象中的多個鍵值對。如 hmset user age 18 gender man phone 19209807669,hmsetnx
:設置對象中的多個鍵值對,存在則不添加 -
hmget
:獲得對象中的多個屬性。如 hmget user age gender phone -
hgetall user
:獲得整個對象的內容
-
hincrby user age 2
:累加屬性 -
hincrbyfloat user age 2.2
: 累加屬性 -
hlen user
:查看user對象有多少個屬性 -
hexists user age
:判斷屬性是否存在 -
hkeys user
:獲得對象的所有屬性 -
hvals user
:獲得所有值 -
hdel user name
:刪除對象的某個屬性
list
list:列表,[a,b,c,d,e,...]
使用
lpush userList 1 2 3 4 5
:構建一個list,從左邊開始存入數據rpush userList 1 2 3 4 5
:構建一個List,從右邊開始存入數據lrange userList start end
:獲得數據lpop userList
:從左側開始拿出一個數據rpop userList
:從右側開始拿出一個數據llen userList
:list的長度lindex userList index
:獲取list下標的值lset userList index value
:把list的某個下標的值替換linsert userList before/after value
:插入一個新的值lrem userList num value
:刪除幾個相同的數據ltrim userList start end
:截取值,替換原來的list
set
set:相當於去重的list
zset
sorted set:排序的set,可以去重可以排序,比如可以根據用戶積分做排名,積分作爲set的一個數值,根據數值可以做排序。zset中的每一個member都帶有一個分數
使用
zadd zset 10 value1 20 value2 30 value3
:設置member和對應的分數zrange zset 0 -1
:查看所有zset中的內容zrange zset 0 -1 withscores
:帶有分數zrank zset value
:獲得對應的下標zscore zset value
:獲得對應的分數zcard zset
:統計個數zcount zset 分數1 分數2
:統計個數zrangebyscore zset 分數1 分數2
:查詢分數之間的member(包含分數1和分數2)zrangebyscore zset (分數1 (分數2
:查詢分數之間的member(不包含分數1和分數2)zrangebyscore zset 分數1 分數2 limit start end
:查詢分數之間的member(包含分數1和分數2),獲得的結果集再次根據下標區間做查詢zrem zset value
:刪除member