1、概述
Redis 是現在很流行的一個 NoSql 資料庫,每秒讀取可以達到10萬次,能夠將資料持久化,支援多種資料結構,容災性強,易擴充套件,常用於專案的快取中介軟體。
今天我們就來聊聊關於Redis的那些事兒:
1)Redis在CentOS7中的安裝
2)Redis的基本使用
3)Redis與SpringBoot的整合
2、Redis在CentOS7中的安裝
2.1 下載Redis
可登入Redis官網(https://redis.io/),下載最新版本的Redis安裝包
2.2 解壓Redis安裝包
1)將安裝包 redis-6.2.5.tar.gz 拷貝到 CentOS7 ,例如 /home 目錄下
2)解壓
# tar -zxvf redis-6.2.5.tar.gz
2.3 安裝依賴包
# yum -y install gcc-c++
2.4 編譯並安裝Redis
進入解壓後的redis安裝包目錄,執行編譯並安裝
# cd redis-6.2.5
# make && make install (過程需要幾分鐘)
2.5 配置Redis配置檔案
1)建立 /usr/local/redis 目錄,用於存放配置檔案
# cd /usr/local
# mkdir redis
2)建立 /usr/local/redis/db 目錄,用於存放資料檔案
# cd /usr/local/redis
# mkdir db
3)進入 /home/redis-6.2.5/ 目錄,拷貝redis配置檔案到 /usr/local/redis 目錄
# cd /home/redis-6.2.5/
# cp redis.conf /usr/local/redis/
4)修改redis配置檔案
# cd /usr/local/redis/
# vi redis.conf
修改以下幾個地方:
2.6 配置Redis啟動指令碼
1)進入 /home/redis-6.2.5/utils 目錄
2)拷貝 啟動指令碼(redis_init_script) 檔案到 /etc/init.d/ 目錄下
# cp redis_init_script /etc/init.d/
3)進入 /etc/init.d/ 目錄
# cd /etc/init.d/
4)修改啟動指令碼
# vi redis_init_script
2.7 啟動redis
1)啟動、停止redis命令
# /etc/init.d/redis_init_script start // 啟動命令
# /etc/init.d/redis_init_script stop // 停止命令
2)設定開機自啟redis
# chkconfig redis_init_script on
3)啟動redis客戶端
# redis-cli
> AUTH zhuifengren // 之前在配置檔案中設定的密碼
3、redis的基本使用
3.1 基本命令
1)獲得key
keys *
keys a*
keys *b
2)獲得key的型別
type name
3)獲得key的剩餘時間,-1代表永久
ttl name
4)設定key的過期時間,單位秒
expire name 30
5)切換資料庫,預設16個庫,下標是 0 到 15,預設使用 0
select 2
6)清空當前庫的所有資料(慎用)
flushdb
7) 清空所有庫的所有資料(慎用)
flushall
8)刪除key
del name
del list2
3.2 string型別
1)設定值
set name zhangsan
set age 30
2)得到值
get name
get age
3)key不存在才設定值
setnx name lisi
4)設定值的同時設定過期時間
set name zhangsan ex 15
5)追加字串
append name 666
6)檢視字串長度
strlen name
7)自增1,僅限數字
incr age
8)自減1,僅限數字
decr age
9)指定自增的數量,僅限數字
incrby age 11
10)指定自減數量,僅限數字
decrby age 11
11)擷取字串,1和5代表字串的下標,-1代表取字串的長度
getrange name 1 5
getrange name 1 -1
12)從某一位置開始替換字串
setrange name 9 ccccc
13)設定多個鍵值
mset name1 zhangsan name2 lisi
14)得到多個鍵值
mget name1 name2
3.3 hash型別
1)設定hash值
hset user1 name zhangsan age 30
2)獲得hash值的某個屬性
hget user1 name
3)獲得hash值的多個屬性
hmget user1 name age
4)獲得hash值的所有屬性
hgetall user1
5)檢視有多少個屬性
hlen user1
6)列出所有key
hkeys user1
7)列出所有值
hvals user1
8)數值屬性增長
hincrby user1 age 10
9)是否存在某屬性
hexists user1 age
10)刪除某個屬性
hdel user1 age
3.4 list型別
1)從左側存入資料
lpush list1 1 2 3 4 5
2)從右側存入資料
rpush list2 1 2 3 4 5
3)檢視陣列值
lrange list1 0 -1
4)從左邊拿出N個值,不設定拿出個數,預設是1
lpop list1 2
5)從右邊拿出N個值,不設定拿出個數,預設是1
rpop list1 2
6)得到陣列的長度
llen list1
7)獲取陣列下標的值,值不刪
lindex list2 2
8)替換某下標的值
lset list2 2 10
9)在某值前插入一個新值
linsert list2 before 10 9
10)在某值後插入一個新值
linsert list2 after 10 11
11)刪除N個相同的資料
lrem list2 2 10
12)擷取元素,替換原來的陣列
ltrim list2 2 3
3.5 set型別
1)新增set,會自動去重
sadd set1 a b c d e a b c
2)獲取set中的所有元素
smembers set1
3)檢視set中有多少個元素
scard set1
4)判斷set中是否存在該元素
sismember set1 e
5)刪除指定元素
srem set1 a
6)出棧N個元素
spop set1
7)隨機展示N個元素,不從set中刪除
srandmember set1
8)把一個set中的元素移動到另一個set中
smove set1 set2 e
9)計算差集
sdiff set1 set2
10)計算交集
sinter set1 set2
11)計算並集
sunion set1 set2
3.6 zset型別
1)新增元素 ,會自動去重
zadd zset1 10 zhangsan 20 lisi 30 wangwu
2)獲取元素,會根據分數排序
zrange zset1 0 -1
3)獲取元素,顯示分數
zrange zset1 0 -1 withscores
4)獲取元素的下標
zrank zset1 lisi
5)獲得某一元素的分數
zscore zset1 lisi
6)得到zset中元素的個數
zcard zset1
7)統計分數在區間內的元素個數
zcount zset1 30 40
8)顯示分數在區間內的元素,包括分數是 30 和 40 的元素
zrangebyscore zset1 30 40
9)顯示分數在區間內的元素,數字前面加上左括號代表不包括分數是40的元素
zrangebyscore zset1 30 (40
10)顯示分數在區間內的元素,帶分頁
zrangebyscore zset1 30 40 limit 1 2
11)刪除zset的元素
zrem zset1 lisi
4、Redis與SpringBoot的整合
1)引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2)yml檔案中配置redis
spring:
redis:
database: 1
host: 192.168.1.144
port: 6379
password: zhuifengren
3)測試redis
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class TestRedis { @Autowired
private RedisTemplate<String, String> redisTemplate; @Test
public void testSetString() {
redisTemplate.opsForValue().set("name", "zhangsan");
} }
5、綜述
今天講了關於Redis的一些知識。
希望大家多多評論交流,共同成長。