PHP Redis簡介
阿新 • • 發佈:2018-11-12
NoSQL
NoSQL ,(Not Only SQL),泛指非關係型資料庫。
特點:NoSQL 通常是以key-value形式儲存, 不支援SQL語句, 沒有表結構。
Redis
Redis是Remote Dictionary Server(遠端資料服務)的縮寫,是一種觀念快取資料庫,支援儲存的value型別很多,包括string(字串)、hash(雜湊)、list(連結串列)、set(集合)、Zset(有序集合)。
為什麼要用快取資料庫?就和為什麼要用記憶體條一樣,減少訪問資料庫的次數。
redis與memcache比較
(1)資料型別:memcache支援的資料型別就是字串,redis支援的資料型別有字串,雜湊,連結串列,集合,有序集合。
(2)持久化:memcache資料是儲存到記憶體裡面,一旦斷電,或重啟,則資料丟失。redis資料也是儲存到記憶體裡面的,但是可以持久化,週期性的把資料給儲存到硬盤裡面,導致重啟,或斷電不會丟失資料。
(3)資料量:memcahce一個鍵儲存的資料最大是1M,而redis的一個鍵值,儲存的最大資料量是1G的資料量。
常用操作
存資料:set key value
取資料:get key
刪資料:del key
type key 檢視key型別
keys pattern 返回指定型別的key
reaname oldkey newkey 重新命名
/*************、、字串、、**************/
取:get key value
存:set key
加1:incr key
減1:decr key
加x:incrby key X
減x:decrby key x
取後修改:getset key value
拼接x:append key x
/*************、、hash、、**************/
取:hget key 欄位
存:hset key 欄位 值
取全部:hgetall key
存多個:hmset key 欄位1 值1 欄位2 值2 ····
刪除:hdel key 欄位
獲取值:hvals key
獲取欄位:hkeys key
/*************、、列表、、**************/
存:lpush key 值1 值2 ······
左取:lrange key 第幾個開始 第幾個結束
左取:lpop key 第幾個開始 第幾個結束
右取:rpop key 第幾個開始 第幾個結束
獲取長度:llen key
頭部插入:lpushx key 值
尾部插入:rpushx key 值
上-下刪除:lrem key 刪幾個幾
下-上刪除:lrem key 負數刪除幾個幾
刪除所有:lrem key 0 刪除的數
插入:linsert key before 值 在值前插入的數
:linsert key after 值 在值後插入的數
移動資料:rpoplpush key1 key 【key1少1 key2多1】
/*************、、set[唯一性]、、**************/
新增:sadd key 值1 值2 值3
刪除:srem key 值1 值2
檢視:smembers key
是否存在:sismembers key 要找的值
差集運算:sdiff key1 key2
交集運算:sinter key1 key2
並集運算:sunion key1 key2
得到數量:scart key
取隨機數:srandmemder key
差集另存:sdiffstore 另存的key key1 key2
交集另存:sinterstore 另存的key key1 key2
並集另存:sunionstore 另存的key key1 key2
/*************、、sorted-set、、**************/
新增:zadd key 值1 欄位1 值2 欄位2·····
可以覆蓋:原有的資料可以覆蓋
查詢1個:zscore key 欄位
刪除:zrem key 欄位1 欄位2
產看長度:zcard key
檢視資料;zrange key 0 -1
展示所有對應的資料:zrange key 0 -1 withscores (由小到大)
展示對應的資料:zrevrange key 0 -1 withscores(由大到小)
按順序多個刪除:zremrangebyrank key 要刪除的區間
按分數刪除:zremrangebyscore key 分數的區間
限制條數:zrange key 0 -1 withscores limit 第幾條開始 顯示條數
加減分數:zincrby(zdecrby) key 加減分數(3) 欄位(李四)
統計條數:zcount key 區間
/*************、、key的應用、、**************/
修改key:rename 原名 新名
過期時間:expire key 時間(1000秒)
檢視過期時間:ttl key
檢視型別:type key
redis的特性
多資料庫
最多提供16個數據庫
預設使用的是0號資料庫
選擇資料庫:select 庫的編號
資料換庫:move key 資料庫的編號
支援事務
multi 開啟事務
exec 提交事務
discard 回滾
redis持久化
RDB ( 可以拷貝資料,但是斷網都不存在)
AOF (安全,斷網了,修改的資料會丟失,出現斷網,日誌檔案不會丟失,檔案過大,可以重寫)