簡介 Redis是由義大利人開發的一款記憶體高速緩存資料庫,是一個高性能的鍵值對(key value)存儲資料庫 Redis全稱為: Remote Dictionary Server(遠程數據服務),使用C語言編寫,並以記憶體作為數據存儲介質,所以讀寫數據的效率極高 特性 Redis支持數據的持久化,可 ...
簡介
Redis是由義大利人開發的一款記憶體高速緩存資料庫,是一個高性能的鍵值對(key- value)存儲資料庫
Redis全稱為: Remote Dictionary Server(遠程數據服務),使用C語言編寫,並以記憶體作為數據存儲介質,所以讀寫數據的效率極高
特性
Redis支持數據的持久化,可以將記憶體中的數據保存在磁碟中,重啟的時候可以再次載入進行使用
Redis不僅僅支持簡單的key-value類型的數據,同時還把value分為list,set,zset,hash等數據結構存儲
因為Redis交換數據快,所以在伺服器中常用來存儲一些需要頻繁調取的數據,提高效率
數據結構
redis是key-value的數據結構,每條數據都是一個鍵值對
鍵的類型是字元串,註意:鍵不能重覆
值的類型分為五種
- String ------> 字元串
- List ------> 列表
- Hash ------> 哈希
- set ------> 集合
- Zset ------> 有序集合
基本使用
連接redis:redis-cli
退出:exit
操作服務端:sudo service redis start/stop/restart
切換資料庫:select n
- 資料庫沒有名稱,預設有16個,通過0-15來標識,連接redis預設選擇第一個資料庫
五大數據類型使用
全局key操作
- 對redis的五個數據類型都適用的命令
- 查看所有的key:keys *
- 查看key的類型:type key
- 改名:rename key new_key
- 刪除鍵值對:del key [key2 key3 ...]
- exists key 查看key是否存在
- 設置過期時間:expire key seconds
- persist key 刪除過期時間
- ttl key 查看時間
- -1:沒設置過期時間
- -2:不存在這個鍵
String類型
- string是redis最基本的類型,一個key對應一個value
- 增加數據:set key value(如果key存在,則修改為新的value)
- 查看數據:get key
- 追加數據:append key value
- 刪除數據:del key
List類型
- List類型是一個字元串列表,可以在列表頭部或尾部添加/刪除數據,在插入數據時,如果該鍵並不存在,Redis將為該鍵創建一個
- 添加數據
- 在末尾添加(列表右邊):rpush key value1 [value2 ...]
- 在頭部添加(列表左邊):lpush key value1 [value2 ...]
- 查看數據
- 下標範圍:lrange key start stop
- 指定下標:lindex key index
- 修改數據:lset key index value
- 刪除數據
- 從末尾刪除(列表右邊):rpop key
- 從頭部刪除(列表左邊):lpop key
- 指定值刪除:lrem key count(可以存在多個重覆的值,指定value刪除的次數) value
Hash類型
- hash類型的值是一個鍵值對集合,如:h_test : { field1:value1, field2:value2,...}
- 添加數據:hset key field value
- 查看域值:hget key field
- 查看所有的field:hkeys key
- 查看所有的value:hvals key
- 查看所有的鍵值對:hgetall key
Set類型
- Set類型為無序的字元集合,元素具有唯一性, 不重覆
- 添加數據:sadd key member1 [member2 ...]
- 查看數據:smembers key
- 隨機刪除:spop key
- 指定刪除:srem key member1 [member2 ...]
Sorted Set類型
- 每一個成員都會有一個分數(score)與之關聯,成員是唯一的,但是分數(score)卻是可以重覆的,比如把一個班級的學生分成幾組
- 添加數據: zadd key score member [score2 member2 …]
- 查看數據
- 根據索引:zrange key start stop
- 根據score:zrangebyscore key min max
- 刪除數據
- 根據值:zrem key member [member …]
- 根據索引:zremrangebyrank key start stop
- 根據score:zremrangebyscore key min max