Redis目錄
- 安裝
- 啟動與關閉服務
- 性能測驗
- Redis基礎知識
- Redis 6.0 開啟多執行緒?
- Redis-Key
- 五大資料型別
- String
- List
- Set
- Hash
- Zset
- 特殊資料型別
- geospatial 地理位置
- Hyperloglog
- Bitmaps
- 事務
- 樂觀鎖
- SpringBoot
- 主從復制
- 哨兵模式
安裝
下載安裝包
解壓安裝包(程式/opt)
tar -zxvf 包名
進入解壓后的檔案
看到redis的組態檔(redis.conf)
安裝環境
yum install gcc-c++
make
make install
查看版本
gcc -v
redis默認安裝路徑
/usr/local/bin
將redis組態檔復制到當前目錄下
redis默認不是后臺啟動,修改組態檔
改為yes
啟動與關閉服務
啟動redis服務
redis-server kconfig/redis.conf
kconfig/redis.conf通過指定組態檔啟動
使用redis客戶端連接
redis-cli
查看redis行程是否運行
關閉redis服務
shutdown 關閉服務
exit 退出redis
再次查看redis行程是否運行
性能測驗
redis-benchmark是一個壓力測驗工具
redis-benchmark [option] [option value]
Redis基礎知識
redis默認有16個資料庫
默認使用第0個
select 切換資料庫
DBSIZE 查看資料庫大小
flushall 清空全部
flushdb 清空當前資料庫
Redis 6.0 開啟多執行緒?
在conf檔案進行配置
io-threads-do-reads yes
io-threads 執行緒數
官方建議:4 核的機器建議設定為 2 或 3 個執行緒,8 核的建議設定為 6 個執行緒,執行緒數一定要小于機器核數,盡量不超過8個,
Redis-Key
keys * 查看所有key
set 設定值
get 獲取值
exists 判斷當前key是否存在
move 移動key到指定資料庫中
DEL 洗掉一個或多個key
expire 設定key的過期時間,單位是秒
ttl 查看當前key的剩余時間
type 查看當前key對應值的型別
五大資料型別
String
append 追加字串,如果當前key不存在,則新建一個key
strlen 獲取key的字串長度
incr 自增1
decr 自減1
incrby 指定增長數值
decrby 指定減少數值
range 字串范圍getrange 截取字串
setrange 替換指定位置開始的字串setex(set with expire) 設定過期時間
setnx(set if not exist) 如果不存在再設定
mset 批量設定
mget 批量獲取
msetnx 不存在則批量設定,要么同時成功,要么同時失敗
物件
mset a:b:c 值【a:b:c 值】設定物件
mget a:b:c【a:b:c 值】獲取物件
getset 先獲取,再設定
List
LPUSH 將一個或多個值插入串列頭部
LRANGE 獲取list中的值
RPUSH 將一個或多個值插入串列尾部
LPOP 移除list第一個元素
RPOP 移除list最后一個元素
LINDEX 通過索引獲取list某一個值
LLEN 回傳串列的長度
LREM 移除list集合中指定個數的value值
LTRIM 通過索引截取指定的長度
RPOPLPUSH 移除串列的最后一個元素,并將它移動到新的串列中
LSET 將串列中指定索引的值替換為另外一個值
LINSERT 將某個具體的value插入到串列中某個元素的前面或后面
Set
Set中的值不能重復
SADD set集合中添加元素
SMEMBERS 查看指定set的所有值
SISMEMBER 判斷值是否在set集合中
SCARD 獲取set集合中的元素個數
SREM 移除set中的元素
SRANDMEMBER 隨機抽選一個元素
SPOP 隨機移除set集合中的元素
SMOVE 移動指定的元素,到另一個集合中
SDIFF 差集
SINTER 交集
SUNION 并級
Hash
HSET 設定key-value
HGET 獲取value
HMSET 設定多個key-value
HMGET 獲取多個value
HGETALL 獲取全部資料(鍵值對)
HDEL 洗掉hash指定的key欄位
HLEN 獲取hash集合長度
HEXISTS 判斷hash中指定欄位是否存在
HKEYS 獲取hash中所有的欄位
HVALS 獲取hash中所有的value
incr decr
HINCRBY 自增或自減
HSETNX 如果不存在,則可以設定
Zset
有序集合,在set基礎上增加了一個值
ZADD 添加一個值
ZRANGE 獲取值(從小到大)
ZRANGEBYSCORE 從小到大排序顯示
ZREVRANGEBYSCORE 從大到小排序顯示
ZREM 移除指定元素
ZCARD 獲取集合中元素的個數
ZCOUNT 獲取指定區間的元素個數
特殊資料型別
geospatial 地理位置
GEOADD 添加地理位置
GEOPOS 從key里回傳所有給定位置元素的位置(經度和緯度),
GEODIST 回傳兩個給定位置之間的距離,
GEORADIUS 以給定的經緯度為中心, 回傳鍵包含的位置元素當中, 與中心的距離不超過給定最大距離的所有位置元素,
GEORADIUSBYMEMBER 使用輸入的經度和緯度來決定中心點,指定成員的位置被用作查詢的中心,
GEOHASH 回傳一個或多個位置元素的 Geohash 表示,
GEO底層的實作原理就是ZSET,可以使用ZSET命令操作GEO
Hyperloglog
資料結構
Redis HyperLogLog 是用來做基數統計的演算法,HyperLogLog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定 的、并且是很小的,
PFADD 添加元素
PFCOUNT 統計元素的數量
PFMERGE 合并兩組資料
Bitmaps
位存盤
Bitmaps位圖,資料結構!都是操作二進制位進行記錄,狀態只有0和1
SETBIT 設定值
GETBIT 獲取值
BITCOUNT 統計
事務
事務是一個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行,事務在執行的程序中,不會被其他客戶端發送來的命令請求所打斷,
Redis的事務:
開啟事務
命令入隊
執行事務
MULTI 開啟事務
EXEC 執行事務
DISCARD 清空事務
樂觀鎖
WATCH 命令可以為 Redis 事務提供 check-and-set (CAS)行為,
UNWATCH 解鎖
EXEC 回傳nil-reply來表示事務已經失敗
SpringBoot
組態檔
spring.redis.host=localhost
spring.redis.port=6379
使用RedisTemplate來操作redis
使用equals判定string而不是==
主從復制
只配置從庫,不用配置主庫(默認為主庫)
主機可以寫,從機只能讀不能寫
info replication 當前庫的資訊
SLAVEOF HOST PORT 可以將當前服務器轉變為指定服務器的從屬服務器
SLAVEOF no one 使當前從機變回主節點
哨兵模式
自動將從庫轉化為主庫
配置哨兵組態檔sentinel.conf
sentinel monitor 服務器名 主機ip 主機埠 設定要多少個 Sentinel 同意才能判斷一個服務器失效
啟動哨兵
redis-sentinel
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/240031.html
標籤:其他
上一篇:node.js的下載介面




