# Redis Redis 是一個in-memory的NoSql資料庫,其資料會以key-value的形式存在記憶體中,再Redis中所有的key都是字串。 五大資料型別 --- ### **String** >**最直觀的一種,就是一個key對應一個value。** 基礎指令: * 查詢、新增、刪除資料:get,set,del * 查詢指定區間的資料:getrange,setrange * 多筆查詢、多筆新增:mset,mget * 數字操作:incr,incrby,incrbyfloat,decr,decrby ## **String資料結構示意圖:**  > ## List >**一種鏈結串列,鏈結串列上的每個節點都包含一個value,節點中的value是可重複的。** 基礎操作: * 資料新增與取出:lpush,rpush,lpop,rpopo。 * 資料查詢:lrange,llen * 數字操作:incr,incrby,incrbyfloat,decr,decrby ## **List資料結構示意圖:**  > ## Set >**基本上就是會排除重複key的List集合,且==是無序的==,底層是一個value為null的Hash table,所以新增、刪除、查詢、的複雜度都是O(1)。** 基礎操作: * 資料新增與取出:sadd,srem,smembers,scard,spop。 * 集合操作:sunion,sinter,sdiff。 ## **Set資料結構示意圖:**  > ## Zset(Sorted set) >**基本上跟Set一模一樣也是無重複的,差別在於Zset的每個Value都有一個權重值,Zset會==根據這權重值由低到高排序集合==,提供一種有序的Set。** 基礎操作: * 資料新增與取出:zadd,zrange,zcard * 透過排序操作:zrangebyscore <key> <min> <max> 集合裡的資料按照zscore排序。 ## **Zset資料結構示意圖:**  > ## Hash >**==一個key對應很多組key-value集合的概念==,可以想像成Key-HashMap,特別適合存物件(Key可當作物件名稱,value的HashMap則對應物件的屬性, 如圖示)** 基礎操作: * CRUD:HSET,HGET,HDEL * 多欄位讀:HGETALL,HKEYS,HMGET ## **Hash資料結構示意圖:**  ## **基礎操作只單純提一些較代表性的指令,完整指令可透過[官網](https://redis.io/commands)學習。** ## Redis資料結構全圖  *Picture by https://www.gushiciku.cn/pl/giLN/zh-tw*
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up