1. 程式人生 > >Redis資料庫如何快速瞭解並使用(詳解)(第一篇)(共五篇)

Redis資料庫如何快速瞭解並使用(詳解)(第一篇)(共五篇)

Redis是什麼
Redis是一個開源的資料庫。底層由C語言編寫、開源、支援網路、 基於記憶體也可持久化的日誌型,高效能的key-Value資料庫。
通常被稱為資料結構伺服器, 因為值Value的型別可以為字串(String)、雜湊(Map)、列表(list)、集合(sets)、有序集合(sorted sets)等型別。
Redis的特點是什麼
1) Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟時可以再次載入使用。
2) Redis不僅僅支援key-value型別的資料,同時還支援list、set、Map、sorted sets等資料型別。
3) Redis支援資料庫備份,也就是master-slave(主從)模式的資料備份。
Redis的優勢是什麼


1) 效能高,Redis的讀寫速度分別是110000次/秒 // 81000次/秒
2) 原子性,Redis的所有操作都是原子性的,Redis也支援對幾個操作合併後的原子性執行
3) 豐富的特性,Redis支援publish/subscribe(釋出/訂閱)、通知、key過期等特性。
4) 支援豐富的資料型別的資料儲存。
Redis的應用場景有哪些
1) 會話快取(最常用)
2) 訊息佇列,比如支付
3) 活動排行榜或計數
4) 釋出、訂閱訊息(訊息通知)
5) 商品列表、評論列表等
Redis的安裝
1) 在官網下載源.

wget http://download.redis.io/releases/redis-4.0.11.tar.gz

在這裡插入圖片描述
2) 解壓命令為:tar -zxvf redis-4.0.11.tar.gz
在這裡插入圖片描述
3)進入redis目錄下進行編譯
在這裡插入圖片描述
4)安裝命令為:make install
在這裡插入圖片描述
5)在redis的Src目錄下,有四個可執行檔案redis-server、redis-benchmark、redis-cli和redis.conf。然後拷貝到一個目錄下。命令為:
mkdir /usr/redis
cp redis-server /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli /usr/redis
cp redis.conf /usr/redis
在這裡插入圖片描述
cd /usr/redis
啟動Redis服務命令為:redis-server redis.conf
在這裡插入圖片描述

啟動後如圖所示,Redis的基本資訊
在這裡插入圖片描述
測試是否啟動成功,命令為:redis-cli
在這裡插入圖片描述
後臺啟動服務端
後臺啟動服務,命令為:nohup redis-server &
在這裡插入圖片描述
啟動後檢視redis程序資訊
在這裡插入圖片描述
注:Could not connect to Redis at 127.0.0.1:6379: Connection refused
停止後如需使用,需要重新啟動Redis服務
退出/停止
退出Redis命令為:exit
退出客戶端命令為:localhost:6379> quit
停止Redis命令為:redis-cli shutdown 待定
如何進入Redis並設定密碼
進入Redis命令為:redis-cli
在這裡插入圖片描述
驗證密碼,命令為:auth 密碼
在這裡插入圖片描述
遠端連線
需要已經安裝redis,可以使用redis-cli命令
命令為:redis-cli -h host -p port -a password
Redis鍵如何使用
檢視redis-server統計資訊命令為:INFO
Redis del命令的使用語法如下,del用於刪除key,以及賦予key的值
首先建立key並給key賦初始值 語法為:mset key value / set key value
在這裡插入圖片描述在這裡插入圖片描述

del語法為del key / 返回值是被刪除key的數量
在這裡插入圖片描述
刪除多個key
在這裡插入圖片描述
Redis DUMP命令基本語法如下,該命令用於序列化給定的key,並返回被序列化得值
首先建立key並給key賦值,然後使用dump 序列化值,dump not-exists-key待定
在這裡插入圖片描述
Redis EXISTS命令基本語法如下,該命令用於檢查給定的key是否存在
首先建立key並給key賦值,然後使用exists檢查key是否存在。
exists 語法為 exists key / 若key存在返回1,不存在返回0
在這裡插入圖片描述
Redis Expire命令基本語法如下,該命令用於給key設定過期時間,過期後key不再可用
Expire語法為:expire key 過期時間[單位/秒]
首先建立key並給key賦值,然後使用Expire設定過期時間。如圖所示:
在這裡插入圖片描述
Redis Expireat命令基本語法如下,該命令用於給key設定過期時間戳
[UNIX 時間戳unix timestamp]過期後key不再可用
Expireat語法為:expireat key 過期時間戳
首先建立key並給key賦值,然後使用Expireat設定過期時間戳。如圖所示:
在這裡插入圖片描述
Redis PExpireat命令基本語法如下,該命令用於給key設定過期時間,以毫秒為單位,過期後key不再可用
PExpireat語法為:pexpireat key 過期時間[毫秒]
首先建立key並給key賦值,然後使用PExpireat設定過期。如圖所示:
在這裡插入圖片描述
Redis Persist命令基本語法如下,該命令用於移除給key設定過期時間,使key永不過期
Persist語法為:persist key
首先建立key並給key賦值,然後使用persist設定時間永不過期。如圖所示
1) 建立一個key並賦值,
2) 設定過期時間
3) 檢視還剩多久過期
4) 設定key永不過期
如果返回1,移除成功。返回0,沒有設定過期時間或key不存在。
5) 檢視key多久過期,
在這裡插入圖片描述
Redis Pttl命令基本語法如下,該命令用於查詢給key設定過期時間,以毫秒為單位,返回值為當前key返回的時間
Pttl語法為:pttl key
ttl語法為:ttl key
首先建立key並給key賦值,設定過期時間,然後使用Pttl檢視剩餘過期時間
如圖所示:
在這裡插入圖片描述
Redis Keys命令基本語法如下,該命令用於查詢給定模式[pattern]/條件的key
Keys語法為:key key* / [與模糊查詢類似]
首先建立key並給key賦值,
在這裡插入圖片描述
然後在這裡插入圖片描述使用Keys查詢符合條件的key。如圖所示:

Redis Move命令基本語法如下,該命令用於將當前的key移動到給定的資料庫當中
Keys語法為:move key 指定的資料庫 / [與Linux移動檔案類似]
首先查詢0資料庫,並建立key並給key賦值,查詢0資料庫,建立key並賦值,檢視當前key是否存在,然後把當前key移動到1號資料庫。
如果兩個資料庫中有相同的key,則會移動失敗。
與Linux中移動檔案的操作相同。
在這裡插入圖片描述
Redis Randomkey命令基本語法如下,該命令用於從當前資料庫隨機返回key
Persist語法為:randomkey
首先建立多個key並給key賦值,然後使用randomkey隨機獲取當前資料庫的key。
如圖所示:
在這裡插入圖片描述
Redis Rename命令基本語法如下,該命令用於修改當前key的名稱
Rename語法為:rename key名稱 新key名稱 與Linux mv命令相同
首先建立key並給key賦值,然後使用rename為key修改名稱
使用rename修改key名稱,當沒有當前key,會報錯,如圖所示
在這裡插入圖片描述
使用reanme修改key名稱,如圖所示
在這裡插入圖片描述
注:當rename修改key名稱時,如果修改的新名字,與之前存在的key名稱相同,名稱修改完成後,key原來的值被替換
Redis Renamenx命令基本語法如下,該命令用於修改當前key的名稱
Renamenx語法為:renamennx key名稱 新key名稱
注:修改key的名稱,如果新名稱不存在,則修改成功。新名稱存在,失敗後返回0,
Redis Type命令基本語法如下,該命令用於獲取當前key的value值的型別
Type語法為:type key 回車後顯示value的型別
如圖所示
在這裡插入圖片描述
Redis(String)如何使用
1) set命令設定指定的值,如果有舊值就覆寫,且無視型別。
語法為:set key_name value
2) get命令獲取指定的key,如果不是字串型別,返回錯誤碼,不存在,返回nil
語法為:get key_name
3) getrange命令獲取當前字串的內容,相當於下標擷取,start開始,end結束
命令為:getrange key_name start end
4) getset命令用於設定指定key的值,並返回舊的值。
命令為:getset key_name value
5) getbit 命令為對key所儲存的value,獲取指定偏移量上的位(bit)
命令為:getbit key_name offset 待定
6) Mget命令獲取所有(一個或多個)指定的key,如果key裡面有某個key不存在,返回nil
語法為:mget key_1 key_2 key_3 …
7) Setbit命令用於key所儲存的字串,設定清除指定偏移量上的位(bit)
語法為setbit key_name offset
8) Setex 命令為指定的key設定值及過期時間,如果key已存在,setex命令會將舊值替換,
語法為:setex key_name timeout value
在這裡插入圖片描述
9) Setnx命令為指定的key設定值,如果key不存在設定成功返回1,key存在設定失敗返回0。
語法為:setnx key_name value
10) Strlen命令用於,獲取指定key儲存的字串長度,當不是字串時,返回一個錯誤。
語法為strlen key_name
11) Mset命令設定一個或多個key-value對。
語法為:mset key_1 value1 key_2 value2 key_3 value3…
12) MSetnx命令為多個的key_value設定值,如果有一個key存在設定成功返回0,key都不存在返回1。
語法為:Msetnx key_name1 value1 key_name1 value1 key_name1 value1
13) PSetex 命令為指定的key設定值及過期時間單位毫秒。Setex單位秒
語法為:Psetex key_name 毫秒[過期時間]value
14) Incr命令為key的value自增 1
語法為:lncr key_name
15) 1
未完待續。。。