Redis簡介
Redis 是完全開源的,遵守 BSD 協議,是一個高性能的 key-value 資料庫,
Redis 與其他 key - value 快取產品有以下三個特點:
- Redis支持資料的持久化,可以將記憶體中的資料保存在磁盤中,重啟的時候可以再次加載進行使用,
- Redis不僅僅支持簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的存盤,
- Redis支持資料的備份,即master-slave模式的資料備份,
下載安裝Redis5.0.X
以Ubuntu20.4為例
運行安裝命令
sudo apt-get install redis-server
Redis組態檔
以Ubuntu20.4為例
sudo vim /etc/redis/redis.conf
Redis操作相關命令
部分命令可直接通過鍵盤Tab鍵補全
# 卸載命令
sudo apt-get purge --auto-remove redis-server
# 關閉命令
sudo service redis-server stop
# 開啟命令
sudo service redis-server start
# 重啟命令
sudo service redis-server restart
# Redis命令列客戶端
redis-cli
# Redis服務器
redis-server
# Redis性能測驗工具
redis-benchmark
# AOF檔案修復工具
redis-check-aof
# RDB檔案檢查工具
redis-check-rdb
Redis五種資料型別
| 型別 | 描述 |
|---|---|
| string | 字串型別 |
| hash | 散列型別 |
| list | 串列型別 |
| set | 集合型別 |
| zset | 有序集合型別 |
Redis通用命令
- 獲取符合規則的鍵名串列
keys [pattern] # pattern支持glob風格通配符格式
| 符號 | 含義 |
|---|---|
| ? | 匹配一個字符 |
| * | 匹配任意個字符 |
| [] | 匹配范圍內字符,如a[b-d]可以匹配“ab”、“ac”、“ad” |
| \ | 匹配需要轉義字符 |
- 判斷鍵是否存在
exists key # 如果鍵存在則回傳整型1,反之回傳0
- 洗掉鍵
del key [key ...] # 支持批量洗掉,回傳值為洗掉鍵的個數
- 獲取鍵值的資料型別
type key
- 獲取鍵的總數
dbsize
- 設定鍵過期時間
expire key seconds # key在seconds秒后過期
- 查詢當前鍵的剩余時間
ttl key # 查詢key在多少秒后過期
# 如果回傳值為-1,則代表key存在且沒有設定過期時間
# 如果回傳值為-2,則代表key已不存在
- 洗掉鍵的過期時間
persist key
- 清空所有資料庫資料
flushall
- 清空當前資料庫資料
flushdb
- 切換到指定資料庫
select index # 默認使用0號資料庫
Redis資料型別入門
String(字串型別)常用命令
string可以存盤任何形式的字串,包括二進制資料,
- 獲取鍵對應的值
get key # 當鍵不存在時會回傳空(nil)
- 設定鍵值對
set key value
setnx key value # 鍵不存在時才設定
set key value xx # 鍵存在時才設定(屬更新操作)
- 遞增/遞減數字
incr key # 使當前鍵自增1,并回傳自增后的值
decr key # 使當前鍵自減1,并回傳自減后的值
incrby key num # 使當前鍵自增num
decrby key num # 使當前鍵自減num
- 獲取字串長度
strlen key # 回傳鍵的長度,不存在則回傳0
- 向尾部追加值
append key value # 如果鍵不存在則設定新的鍵值,回傳值為總長度
- 批量獲取/設定多個鍵值
mget key [key ...] # 獲取
mset key1 value1 key2 value2 ... # 新增
- 獲取字串指定下標的值
getrange key start end
- 設定字串指定下標的值
setrange key index value
Hash(散列型別)常用命令
hash 是一個 string 型別的 field(欄位)和 value(值)的映射表,適合用于存盤物件,
- 獲取散列屬性對應的值
# 獲取單個屬性對應的值
hget key field
# 獲取多個屬性對應的值
hmget key field [field ...]
# 獲取散列所有屬性與值
hgetall key
# 獲取散列所以屬性對應的值
hvals key
# 獲取散列鍵對應的所有屬性
hkeys key
- 設定散列
# 設定單個散列
hset key field value
# 設定散列屬性,如果屬性已存在,則設定失敗
hsetnx key field value
# 設定散列多個屬性值
hmset key field1 value1 field2 value2 ...
- 洗掉散列屬性
hdel key field
- 判斷散列的鍵是否存在某一屬性
hexists key value
- 獲取散列屬性數量
hlen key
List(串列型別)常用命令
- 設定串列
# 從串列右側插入值
rpush key value1 value2 ...
# 從串列左側插入值
lpush key value1 value2 ...
# 在串列指定值的前/后插入新值
linsert key before|after value newValue
- 洗掉串列指定值
# 從串列左側洗掉一個元素
lpop key
# 從串列右側洗掉一個元素
rpop key
# 根據count值洗掉所有相同值的元素
# (1)count>0,從左到右,洗掉最多count個value相等的項
# (2)count<0,從右到左,洗掉最多Math.abs(count)個value相等的項
# (3)count=0,洗掉所有value相等的項
lrem key count value
# 根據索引范圍修改串列
ltrim key start end
- 獲取串列值
# 獲取串列指定索引范圍內所有元素
# start與end為閉區間
lrange key start end
# 獲取串列指定索引的元素
lindex key index
# 獲取串列長度
llen key
- 修改串列中的值
# 設定串列指定索引對應的值為newValue
lset key index newValue
Set(集合型別)常用命令
- 設定集合
# 向集合鍵中添加元素,如果元素存在,則添加失敗
sadd key element
- 洗掉集合中指定元素
# 洗掉集合中指定的元素
srem key element
# 從集合中隨機洗掉count個元素
# 移除后會回傳移除的元素
spop key [count]
- 獲取集合指定值
# 獲取集合的數量
scard key
# 判斷元素是否存在
sismember key element
# 從集合中隨機獲取count個元素
srandmember key [count]
- 集合間的交差并操作
# 獲取集合間的差集
sdiff key1 key2 ...
# 獲取集合間的交集
sinter key1 key2 ...
# 獲取集合間的并集
sunion key1 key2 ...
Zset(有序集合型別)常用命令
- 設定有序集合
zadd key score element
- 洗掉有序集合中指定元素
zrem key element
# 洗掉指定排名內的升序元素
zremrangebyrank key start end
# 洗掉指定分數內的升序元素
zremrangebyscore key minScore maxScore
- 獲取有序集合指定值
# 獲取元素的分數
zscore key element
# 獲取元素總個數
zcard key
# 按照升序排序獲取指定索引范圍內的元素
# WITHSCORES屬性控制是否輸出分數值
zrange key start end [WITHSCORES]
# 按照升序排序獲取指定分數范圍內的元素
zrangebyscore key minScore maxScore [WITHSCORES]
# 獲取有序集合內在指定分數范圍內的個數
zcount key minScore maxScore
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/386492.html
標籤:其它
下一篇:Redis入門及常用命令學習
