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的一些知識。
希望大家多多評論交流,共同成長。