(一) Redis 介紹以及常用類型操作

Redis

一. 簡介

​ Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。

​ 下載地址:https://github.com/microsoftarchive/redis/releases

二. Redis的優勢

:Redis非常快,每秒可執行大約110000次的設置(SET)操作,每秒大約可執行81000次的讀取/獲取(GET)操作。

支持豐富的數據類型:Redis支持開發人員常用的大多數數據類型,例如列表,集合,排序集和散列等等。這使得Redis很容易被用來解決各種問題,因爲我們知道哪些問題可以更好使用地哪些數據類型來處理解決。

操作的原子性:所有Redis操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis服務器能接收更新的值。

很多使用工具:Redis是一個多實用工具,可用於多種用例,如:緩存,消息隊列(Redis本地支持發佈/訂閱),應用程序中的任何短期數據,例如,web應用程序中的會話,網頁命中計數等。

三. 支持的數據類型

主要有五類其實還不止

  • 字符串類型
  • 散列類型(Hash)
  • 列表類型(List)
  • 集合類型(Set)
  • 有序集合

四. 常用的數據類型操作

keys * : 獲取數據庫的所有的鍵。

exists key: 判斷某個鍵是否存在,返回表示存在,0表示部存在。

type key: 獲取鍵的類型(string,hash,list,set,zset)

4.1 字符串的常用操作

set key value: 設置或者覆蓋值。
incr key : 將對應的鍵的值,遞增1.
decr key : 將對應的鍵的值,遞減1.
get key:  根據鍵取值。
del key [key1, key2,,]: 刪除某個鍵。
expire key 時間(秒):設置key的存活時間,單位爲秒。  
ttl code: 查看存活時間。 (TTL  Time To Live)

4.2 列表的操作

lpush key value: 往左側中設置值。
rpush key value: 往右側插入值。
lrange start end: 取集合中索引在[start, end]之間的值。
例:lrange aa 0 2   lrange aa 0 -1
llen key: 獲取集合的長度。
lpop key: 移除並返回首元素。
rpop key: 移除並返回尾元素。
lrem key count value: 移除列表中count個值爲value的數據。當count爲0,移除所有。(瞭解)
ltrim key start end: 保留指定區域的元素,其他全部刪除。
lset key index value: 設置索引爲index的值爲value.
lindex key index: 獲取索引爲index的元素。

4.3 集合的操作

sadd key member [memerb..]: 往集合中添加元素,返回添加成功的個數。
smembers key: 返回集合中所有的元素。
srem key member: 刪除元素。
sismember key member: 判斷member是否存在, 存在返回1,不存在返回0。
scard key: 返回集合中的個數。
srandmember key: 從集合中隨機返回一個值。
spop key: 移除並返回一個隨機的member.
smove src destination member: 將一個元素移動到另外一個集合中。
sinter key key: 對集合求交集。
sunion key key: 對兩個集合求並集。
sdiffstore destination key1 key2:  差集運算並存儲到集合中。
sinterstore destination key1 key2: 交集存儲到集合中。
sunionstore destionation key1 key2: 並集存儲到集合中。

4.4 Hash操作

hset key field value: 設置值, 如果存在相同的Key,對應的值會覆蓋之前的。
hmset key field value filed value: 設置多個值。
hget key field: 取值。
hexists key field: 是否存在。
hgetall key: 獲取集合中所有的元素。
hdel key field: 刪除字段。
hkeys key: 獲取所有的key。
hvals key: 獲取所有的字段值。
hlen key: 獲取字段的數量。
hsetnx key field value : 不存在的時候設置值。

4.5 有序集合

zadd key score value [score1 value1]: 添加。
zscore key value: 獲取分數。
zrange key start end: 獲取索引從start開始,到end結束的所有的元素。
zrange key start end withscores: 查詢索引從start開始,到end結束的所有元素名和分數。
zcard key: 獲取元素的個數。
zcount key min max: 獲取在指定分數範圍內的元素的個數。閉區間[min, max]
zrem key value1 [value2]: 刪除元素。
zrank key value: 返回value在key中的下標。
zrangebyscore key begin end: 查詢分數在[begin,end]區間的所有值,根據分數排序。
zrangebyscore key min max limit index length; (分頁)***********
zrevrange key 2 3: 倒序排列,然後去取下標在[2, 3]區間的元素。
zremrangebyscore key min max:  移除分數在[min,max]之間的數據,返回移除的個數。
zremrangebyrank key begin end: 移除索引在[begin,end]之間的數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章