一、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