redis基本使用

一、redis簡介:  

redis是完全開源免費的,遵守BSD協議(BSD是"Berkeley Software Distribution"的縮寫,意思是"伯克利軟件發行版"。),是一個高性能的key-value數據庫。是一種支持Key-Value等多種數據結構的存儲系統。可用於緩存、事件發佈或訂閱、高速隊列等場景。該數據庫使用ANSI C語言編寫,支持網絡,提供字符串、哈希、列表、隊列、集合結構直接存取,基於內存,可持久化

redis與其他的key-value緩存產品比較有三個特點

1.redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載到內存中進行使用。

2.redis不僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。

3.redis支持數據的備份,即master-slave模式(也就是我們所說的主從複製,主機數據更新後根據配置和策略,自動同步到備機)的數據備份。

redis的優勢

1.性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。

2.豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。

3.原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來。

4.豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。

應用場景:

1.會話緩存(最常用)

2.消息隊列(支付)

3.活動排行榜或計數

4.發佈、訂閱消息(消息通知)

5.商品列表、評論列表

redis數據類型:

redis一共支持五種類型:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)。

1.string(字符串)

它是redis最基本的數據類型,一個key對應一個value,需要注意是一個鍵值最大存儲512MB。

2.hash(哈希)

redis hash是一個鍵值對的集合, 是一個string類型的field和value的映射表,適合用於存儲對象。

redis-cli 是進入redis的客戶端的命令

命令:HSET KEY_NAME FIELD VALUE 

HSET key field value 將哈希表 key 中的域 field 的值設爲 value 。

如果字段是哈希表中的一個新建字段,並且值設置成功,返回 1 。 如果哈希表中域字段已經存在且舊值已被新值覆蓋,返回 0 。

舉例:hset key field "520" 

HSET key field 獲取哈希表key中域field的value值

舉例:hget key field

3.list(列表)

是redis簡單的字符串列表,按照插入順序排序

操作命令

lpush ----先進後出,在列表頭部插入元素

舉例:lpush mylist firstele

rpush -----先進先出,在列表的尾部插入元素

舉例:rpush mylist secondele 

此時mylist的順序是{firstele,secondele},secondele是後插入的,使用rpush在尾部插入元素

lrange -----出棧,根據索引,獲取列表元素

舉例:lrange mylist 0 2  獲取mylist裏獲取索引0---2的元素

llen ----鏈表長度,元素個數

舉例:llen mylist

lpop ----左邊出棧,獲取列表裏的第一個元素

舉例:lpop mylist

rpop---- 右邊出棧,獲取列表裏面的最後一個元素

舉例:rpop mylist

lindex---根據索引,取出元素

舉例:lindex mylist  2  取出mylist裏面索引爲2的元素

Lrem---根據key,刪除n個value 

ltrim---根據索引,刪除指定元素

lset---根據index,設置value

linsert before---根據value,在之前插入值

linsert after---根據value,在之後插入值

注意 
出棧,該元素在鏈表中,就不存在了 
左邊,默認爲列表的頭部,索引小的一方 
右邊,默認爲列表的尾部,索引大的一方

4.set(集合)

string類型的無序集合,不可重複

sadd--添加元素

 srem---刪除命令

sismember---判斷元素是否存在(存在返回1,不存在返回0)

sdiff---返回兩個集合中的差集(與集合順序有關)

舉例:sdiff myset myset2 結果:set1 (myset域myset2相差set1)

sinter--- 兩個集合中的交集

sunion---兩個集合的並集

 

scard---查看具體數量

srandmember--隨機提取元素

sdiffstore ---將兩個集合相差的成員存儲到另一個集合中

sinterstore---將兩個集合交際的成員存儲到另一個集合中

sunionstore---並集存儲

參考:https://blog.csdn.net/qq_36411874/article/details/82286063

參考:https://blog.csdn.net/middleware2018/article/details/80355418

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章