Java Redis系列2 (redis的安裝與使用+redis持久化的實現))

一隻胡說八道的猴子發表於2020-08-09

Java Redis系列2 (redis的安裝與使用+redis持久化的實現)

什麼是Redis?

在這裡插入圖片描述

Redis是用C語言開發的一個開源的高效能鍵值對(key-value)資料庫,官方提供測試資料,50個併發執行100000個請求,讀的速度是110000次/s,寫的速度是81000次/s ,且Redis通過提供多種鍵值資料型別來適應不同場景下的儲存需求,目前為止Redis支援的鍵值資料型別如下:

  1. 字串型別 string
  2. 雜湊型別 hash
  3. 列表型別 list
  4. 集合型別 set
  5. 有序集合型別 sortedset

Redis的應用場景

1.快取(資料查詢,短連結,新聞內容,商品內容)
2.聊天室的線上好友
3.任務佇列(秒殺,搶購)
4.應用排行榜
5.網站訪問統計
6.資料過期處理
7.分散式叢集架構中的session分離

下載安裝

  1. 官網:https://redis.io
  2. 中文網:http://www.redis.net.cn/
  3. 解壓直接可以使用:

在這裡插入圖片描述

		* redis.windows.conf:配置檔案
		* redis-cli.exe:redis的客戶端
		* redis-server.exe:redis伺服器端

Redis的資料結構

看過我上一篇文章的兄弟應該都知道redis是key,value格式的資料,其中key是字串
,value是有五種不同的資料結構

圖解

在這裡插入圖片描述

value的資料結構型別
1.字串型別 String
2.雜湊型別 hash:map格式
3.列表型別list:linkedlist格式,支援重複元素
4.集合型別 set:不允許重複元素
5.有序集合型別:sortedset:不允許重複元素,且元素有順序

命令操作

我們先開啟伺服器端
在這裡插入圖片描述再開啟客戶端

在這裡插入圖片描述

1.字串型別
1.1儲存 set key value
1.2獲取 get value
演示
在這裡插入圖片描述2.雜湊型別
1.儲存 :hset key field value
2.獲取 :hget key field
3.獲取全部的key和valu :hgetall myhash
4.刪除:hdel key field
演示
在這裡插入圖片描述
3.列表型別
可以新增一個元素帶一個列表的頭部或尾部
1.lpush key value:將元素加入到列表左表
2.rpush key value:將元素加入到列表的右表
3.獲取:lrange key start end:範圍獲取
4.刪除列表最左邊的元素並將元素返回:lpop key
5.刪除列表最右邊的元素並將元素返回:rpop key

演示
在這裡插入圖片描述

//從左邊插入元素
127.0.0.1:6379> lpush list a
(integer) 1
127.0.0.1:6379> lpush list b
(integer) 2
//獲取全部元素
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "a"
127.0.0.1:6379> rpush list c
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "a"
3) "c"
//移除列表最左邊的元素
127.0.0.1:6379> lpop list
"b"
127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "c"
//移除列表最右邊的元素
127.0.0.1:6379> rpop list
"c"
127.0.0.1:6379> lrange list 0 -1
1) "a"
127.0.0.1:6379>

集合型別set:不允許重複元素

1.儲存資料 sadd key value
2.刪除資料 srem key value
3.獲取資料:smembers key獲取set集合中的所有元素
在這裡插入圖片描述

//新增資料
127.0.0.1:6379> sadd set 1
(integer) 1
127.0.0.1:6379> sadd set 2
(integer) 1
//獲取所有元素
127.0.0.1:6379> smembers set
1) "1"
2) "2"
//刪除指定元素
127.0.0.1:6379> srem set 1
(integer) 1
127.0.0.1:6379> smembers set
1) "2"
127.0.0.1:6379>

有序集合型別sortedset

不允許重複元素,且元素有序,每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

在這裡插入圖片描述

//插入資料
127.0.0.1:6379> zadd sortedset 1 zhangsan
(integer) 1
127.0.0.1:6379> zadd sortedset 5 lisi
(integer) 1
127.0.0.1:6379> zadd sortedset 2 wangwu
(integer) 1
//獲取資料
127.0.0.1:6379> zrange sortedset 0 -1
1) "zhangsan"
2) "wangwu"
3) "lisi"
//移除指定資料
127.0.0.1:6379> zrem sortedset wangwu
(integer) 1
127.0.0.1:6379> zrange sortedset 0 -1
1) "zhangsan"
2) "lisi"
127.0.0.1:6379>

通用命令

keys * :獲取所有鍵
type key :獲取鍵對應的value的型別
del key :刪除指定的key value

Redis 持久化

為什麼要進行持久化?
redis是一個記憶體資料庫,當redis伺服器重啟時,資料會丟失,所以我們需要將redis資料持久化到硬碟檔案中
redis的持久化機制
1.RDB:預設方式,不需要進行配置,預設就是使用這種機制
在一定的時間間隔內,通過檢測key的變化情況,然後持久化資料

1.1編輯redis.windows.conf檔案
在這裡插入圖片描述
save 900 1
15分鐘後至少一個發生改變
save 300 10
五分鐘後至少10個發生改變
save 60 10000
一分鐘後至少10000個發生改變
1.2 重新啟動redis伺服器,並指定配置檔名稱
D:\JavaWeb2018\day23_redis\資料\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf
在這裡插入圖片描述

AOF:日誌記錄的方式,可以記錄每一條命令的操作。可以每一次命令操作後,持久化資料
1. 編輯redis.windwos.conf檔案
在這裡插入圖片描述

				appendonly no(關閉aof) --> appendonly yes (開啟aof)

在這裡插入圖片描述

				# appendfsync always : 每一次操作都進行持久化
				appendfsync everysec : 每隔一秒進行一次持久化
				# appendfsync no	 : 不進行持久化

以上就是Redis的一些基礎操作及怎麼進行持久化,這也是我JAVA redis系列的第二篇,後面我會繼續更新,寫作不易,請各位老鐵點個贊支援一下,覺得有幫助的也可以收藏呀,我會經常更新文章,也可以關注我呀

在這裡插入圖片描述

相關文章