Redist簡介
redis簡介
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。
特點
- 支持持久化
- 數據結構類型豐富
- 支付master-slave模式的數據備份
- 原子性
數據類型
- string類型,一個key對應一個value(鍵值對)。一個鍵最大能存儲512MB。
方法 | 用途 | 示例 |
---|---|---|
GET | 獲取值 | GET name |
SET | 設置值 | SET name val |
DEL | 刪除值 | DEL name |
INCR | 自增1 | INCR key |
DECR | 自減1 | DECR key |
INCRBY | 自增整數amount | INCRBY key amount |
DECRBY | 自減整數amount | DECRBY key amount |
INCRBYFLOAT | 自增浮點值amount | INCRBYFLOAT key amount |
還有一些請看下面的鏈接,比如批量設置、設置過期時間。
更多使用方式
- hash類型,是一個string類型的field和value的映射表,hash特別適合用于存儲對象。每個hash可以存儲2^32 - 1鍵值對(40多億)。
方法 | 用途 | 示例 |
---|---|---|
HGET | 獲取值 | HGET hash-key sub-key1 |
HSET | 設置值 | HSET hash-key sub-key1 value1 |
HGETALL | 獲取散列所有的值 | HGETALL hash-key |
HDEL | 刪除值 | HDEL hash-key sub-key1 |
HMSET | 設置散列中的一個或多個鍵的值 | HMSET hash-key sub-key1 value1[sub-key value...] |
HMGET | 獲取散列中的一個或多個鍵的值 | HMGET hash-key sub-key1 [sub-key...] |
HLEN | 返回散列中的鍵值對數量 | HLEN hash-key |
HKEYS | 獲取散列中的所有鍵 | HKEYS hash-key |
- list類型,是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。一個列表最多可以包含 232 - 1 個元素 (每個列表超過40億個元素)。
方法 | 用途 | 示例 |
---|---|---|
RPUSH | 將給定值推入到列表右端 | RPUSH key name |
LPUSH | 將給定值推入到列表左端 | LPUSH key name |
RPOP | 從列表右端拋出一個值,并且返回其值 | RPOP key |
LPOP | 從列表左端拋出一個值,并且返回其值 | LPOP key |
- set類型,是String類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據。集合中最大的成員數為 2^32 - 1 (每個集合可存儲40多億個成員)。
方法 | 用途 | 示例 |
---|---|---|
SADD | 往集合添加元素 | SADD key item |
SREM | 從集合移除元素 | SREM key item |
SMEMBERS | 返回集合中的所有成員 | SMEMBERS key |
- zset類型,有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關 聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重復。集合中最大的成員數為 2^32 - 1 (每個集合可存儲40多億個成員)。
方法 | 用途 | 示例 |
---|---|---|
ZADD | 往集合添加元素 | ZADD key score item |
ZREM | 從集合移除元素 | ZREM key item |
使用場景
類型 | 理解 | 用途示例 |
---|---|---|
string | 簡單的key-value格式 | 計數器,數據緩存 |
hash | 用于存儲對象 | 存儲用戶信息(以用戶id為hash_key,不同屬性為hashmap的key-value),數據緩存 |
list | 提供棧和隊列結構的雙向鏈表 | 入隊消費,搶購排隊,最新評論 |
set | string的集合(可對兩個集合進行運算) | 可以求交集,差集,比如微博共同好友 |
zset | string的集合(可對兩個集合進行運算,并且可排序) | 可以排序,比如全班同學成績,閱讀量最高的文章,最新評論 |
更多的場景:
- https://www.cnblogs.com/NiceCui/p/7794659.html
- https://www.cnblogs.com/xiaoxi/p/7007695.html
- https://www.cnblogs.com/mrhgw/p/6278619.html
- http://blog.csdn.net/truong/article/details/39228731
補充
redis還有事務、發布訂閱等功能。