Redis之路
阿新 • • 發佈:2019-01-02
前言:資料庫是一切資料的源頭,因此我們沒有逃避的理由
(一) 什麼是redis?
redis是nosql(not noly sql)產品中最為出色的一種非關係型的資料庫,主要包括以下幾種儲存結構:String,list,set,hash,sorted set,為高併發而生,其中讀的速度為110000次/秒,寫的速度是81000次/秒,
(二) 安裝方式
Linux : yum install epel-release(如果錯誤應該執行這個步驟,沒有就跳過) -----> yum -y install redis ----->啟動服務同時執行redis-cli
Windows: https://pecl.php.net/package/redis 下載擴充套件包放入到PHP中開啟擴充套件就行(注意要檢視是不是nts/ts)下載相應的版本
(三) 資料型別的詳解
1.String(字元資料型別)
get 鍵名 //獲取對應鍵名的值 如果不存在返回null
set 鍵名 值 //設定對應鍵名的值
set 鍵名 值 [過期時間/秒] //設定超時的時間
2.
hset 雜湊表名的名稱 欄位(key) 欄位值(value) [超時時間/s] //設定一個值
hget 雜湊表的名稱 欄位名稱(key name) //獲取一個值
hmset 雜湊表的名稱 欄位(key) 欄位值(value)..... //一次性設定多個值也可以用這個修改資料
hgetall 欄位(key) //獲取這個鍵名的所有值即這一條資料
3.list(連結串列資料型別)
lpush 連結串列的名稱(棧名稱) 值 //這個和入棧的模式相關,先進看不出,後進先出
rpush 連結串列的名稱(佇列) 值 //這個和佇列相關,先進先出,後進後出
lrange 連結串列的名稱 索引開始位置 索引結束位置(-1 代表獲取到全部) //這個是查詢相關的操作
lpop 連結串列名稱 //彈出(棧或者佇列)頭部的元素,並且刪除,常用這個進行秒殺的功能
rpop 連結串列名稱 //彈出(棧或者佇列)尾部的元素,並且刪除,常用這個進行秒殺的功能
ltrim 連結串列名稱 開始的位置 結束的位置 //讓列表只保留指定區間內的元素,不在指定區間之內的元素都將被刪除
4.
sadd 集合的名稱 集合的元素1.... //新增集合元素
smembers 無序集合的名稱 //獲取集合中的值
sdiff 作為標準的集合名稱 求差集的集合名稱 //求兩個集合之間的差集
sinter 集合名稱1 集合名稱2 //求兩個集合的交集
sunion 集合名稱1 集合名稱2 ... //求兩個集合的並集
scard 集合名稱 //求集合的元素的個數
srem 集合名稱 元素名稱 //用於刪除無序集合中的元素,在社交網路開發中用於黑名單功能
5.zset集合資料型別(有序集合)
zadd 集合名 序號 元素 // 向有序集合中新增元素。如果該元素存在,則更新其順序。
zrange 集合名稱 開始位置(索引) 結束位置(索引)(-1 獲取全部) //按序號升序(由小到大)獲取有集合中的內容
zrevrange 集合名稱 開始位置(索引) 結束位置(索引)(-1 獲取全部) //按序號降序(由大到小)獲取有序集合中的內容
(四) 通用操作
keys * //獲取資料庫中的所有的資料
exists 鍵名 //判斷鍵名是否存在
select index(0-9) //選擇資料庫的空間段
del 鍵名 //刪除指定的鍵名
type 鍵名 //查詢鍵名對應的資料型別
expire 鍵名 有效期(秒數) //設定超時的時間
ttl 鍵名 //檢視一個 key 的過期剩餘時間
(五) redis中的密碼登入設定
1. 開啟redis.conf 2.查詢到foobared 設定成requirepass 密碼
3.登入
redis-cli -a 密碼
(六) redis持久化設定
分類:rdb(預設,在間隔固定時間進行儲存),aof(修改就儲存)
設定成aof模式:
1.開啟redis.conf 2.修改 appendonly no 變成yes 3.儲存資料的檔名 appendfilename "檔案路徑"
(七) PHP中使用redis操作
使用前必須確認開啟了redis擴充套件為php
1.php連線redis資料庫 $redis = new Redis(); $redis->connect(ip地址,埠); $redis->auth(密碼);
2.操作字元資料型別
$redis->set(key,value) //設定值
$redis->set(key) //獲取值
3.操作hash型別
$redis->hSet(key,欄位名,value); //設定值
$redis->hGet(key,欄位名); //獲取值
4.操作set無序集合
$redis->sAdd(key,value); //設定值
$redis->sMembers(key) //獲取值
5.操作zset有序集合
$redis->zAdd(key,index,value); //設定值
$redis->zRange(key,0,-1) // 升序排序
$redis->zRange(key,0,-1,true) // 讓鍵與值互換
6.操作連結串列list
$reids->lpush(key,value) //設定按照棧的方式入列
$reids->rpush(key,value) //設定按照佇列的方式入列
$redis->lpop() //從頭部出列並且刪除
$redis->rpop() //從尾部出列並且刪除
$redis->lRange(key,start,end) //讀取連結串列的值