五十二、Redis 資料庫 2:set型別、zset型別、hash型別
一、set集合型別(無序集合型別)
redis裡面的set集合型別是string型別的無序集合,被稱為無序集合型別。
set元素最大可以包含(2的32次方-1)個元素。
1、集合滿足三個特點:
無序性:集合裡面的資料是沒有順序之分。
唯一性:集合裡面的資料彼此是不能重複。
確定性:集合裡面的資料的個數是確定的。
2、該型別應用場合:qq好友推薦
3、sadd向集合裡面新增元素: sadd 集合名 數值
4、smembers獲取集合裡面的元素
5、srem移除集合裡面指定的某個元素,成功返回1
6、spop隨機的彈出集合裡面的某個元素
7、sismember 集合名 元素
8、scard 集合名:返回set的元素個數
9、smove p1 p2 元素:從p1對應集合中移除給定元素,並將指定的元素新增到p2中,成功返回1
二、集合的一個實際使用場景
1、一般redis裡面的集合被用在社交型別的網站裡面做好友關係展示。例如:實現好友的推薦,共同好友......
2、設定4個使用者(一個集合)
3、設計好友的集合(另寫一個集合)
① 使用者id為3的使用者好友集合裡面有1和2:代表的含義是3號使用者有兩個好友。
王五的好友是:張三和李四。
Set是個集合名,格式可自己一級一級寫(起名有意義,可自己定義鍵值名)
② 使用者id為45的使用者好友集合裡面的資料是2:代表的含義是45號使用者有一個好友。
趙六的好友是:李四。
4、求交集、並集、差集
① 獲取3號和45號的共同好友(求交集) sinter
② 獲取3號和45號的全部好友(求並集)sunion
③ 讓3號使用者給45號使用者推薦好友(求差集) sdiff(以前一個為準,求前面的差集,如果前:1,2,後2,後-前 差集為空)
三、Redis 資料庫 --zset型別
(1)zset(sorted set)型別(有序集合)
和set一樣sorted set也是string型別元素的集合,不同的是每個元素都會關聯一個權。
通過權值可以有序的獲取集合中的元素。
redis裡面的zset型別被稱為有序集合,意味著有序集合裡面的元素是排好序的,也滿足唯一性和確定性。
1、有序集合概圖:
2、zadd新增元素到集合,元素在集合中存在則更新,不存在新增
zadd key 權重 元素
下面的1 / 5 / 15 / 45就是權重:
如果元素本已存在,新增不同權重的重複元素不會生成新元素,會更新值:
3、zrange key start end:返回指定區間的元素,返回的是按權重升序
4、zrange key start end withscores 獲取集合內容的時候,顯示權重資訊
(2)案例:利用sort set實現獲取最熱門的前5貼子資訊。
1、新增元素:
按照帖子回覆量排序:102是權重,11是元素
2、zrevrange key start end:返回指定區間的元素,返回的是按權重(也就是貼子的回覆量)降序
3、zremrangebyrank key min max:刪除集合中排名在給定區間的元素(權值從小到大排序)索引從0開始
4、增加一個新元素,就刪除一箇舊元素(回覆量最低的)
zremrangebyrank key 0 0 (權值從小到大排序,索引從0開始)
5、zrank key 元素:返回指定元素在集合中的排名(下標),集合中元素是按升序的
6、zrevrank key 元素:返回指定元素在集合中的排名(下標),集合中元素是按降序的
7、zcard key:返回集合中元素個數
8、zscore key 元素:返回給定元素對應的權重
9、zincrby key 增長的值 指定元素:使指定元素的權重增加對應的值,並返回增加後的值
10、zrem key 指定元素:刪除指定元素,1表示成功,元素不存在返回0
四、Redis 資料庫 --hash型別
1、hset設定單個值:(重複設定相同的則更新)
2、hget獲取值:
3、hmset設定多個值:
4、hgetall獲取hash全部的值:
5、hset:設定雜湊值(帶:號形式的)
6、hget:獲取雜湊值
7、hmget:獲取多對雜湊值
8、hmset:設定多對雜湊值
9、hkeys:返回所有keys
10、hvals:返回所有Values
11、hlen:返回雜湊包含域(field)的數量
12、hdel:刪除雜湊指定的域(field)(刪除值)
13、hexists:判斷是否存在,返回1存在,返回0不存在
14、hincrby:將指定的hash filed加上給定值
相關推薦
五十二、Redis 資料庫 2:set型別、zset型別、hash型別
一、set集合型別(無序集合型別) redis裡面的set集合型別是string型別的無序集合,被稱為無序集合型別。 set元素最大可以包含(2的32次方-1)個元素。 1、集合滿足三個特點:
五十、MongoDB資料庫2:Python操作MongoDB資料庫
一、安裝pymongo庫 pymongo是操作MongoDB的python模組 Python2的安裝方法:python2 -m pip install pymongo Python3的安裝方法:p
四十八、mysql資料庫7:Mysql與python的互動、引數化(重點python與mysql互動傳參)
一、使用python命令連線資料庫流程 二、python3 安裝pymysql包 建立py檔案,進行插入資料:通過python檔案來連線資料庫實現互動(前提需要安裝pymysql包) 1、Li
java操作redis資料庫三:set集合
package com.redis; import java.util.Set; import redis.clients.jedis.Jedis; public class set_redis {Jedis jedis;set_redis(){jedis=new Demo
五十二、設置更改root密碼、連接MySQL、MYSQL常用命令
設置更改root密碼 連接MySQL MySQL常用命令 五十二、設置更改root密碼、連接MySQL、MYSQL常用命令一、設置更改root密碼 root用戶是MySQL的超級管理員用戶,這個root和系統的root並不是一個用戶,需要區分開,也可以創建普通用戶來連接MySQL。
前端(十二)—— JavaScript基礎操作:if語句、for循環、while循環、for...in、for...of、異常處理、函數、事件、JS選擇器、JS操作頁面樣式
結束 建議 prop map、set -c 表單元素 tle form collect JavaScript基礎操作 一、分支結構 1、if語句 if 基礎語法 if (條件表達式) { 代碼塊; } // 當條件表達式結果為true,會執行代碼塊;反之不執行
opencv學習筆記五十二:基於Haar或LBP級聯分類器的實時人臉人眼檢測
#include<opencv2\opencv.hpp> using namespace cv; using namespace std; int main(int arc, char** argv) { namedWindow("output",
“全棧2019”Java第五十二章:繼承與初始化詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第五十二章:繼承與初始化詳解 下一章 “全棧2019”Java第五十三章:向上轉型和向下轉型
(十二)Redis叢集JedisCluster資料庫詳解
(1)redis在單機模式下redis.conf配置檔案中預設的資料庫數量是16個, # Set the number of databases. The default database is
第五十二章:FastDFS分散式檔案系統
資料下載 大綱 FastDFS架構包括Tracker server 和 Storage server 。客戶端請求Tracker server 進行檔案上傳、下載,通過Ttacker server 排程,最總
孤荷凌寒自學python第五十二天初次嘗試使用python讀取Firebase資料庫中記錄
孤荷凌寒自學python第五十二天初次嘗試使用python讀取Firebase資料庫中記錄 (完整學習過程螢幕記錄視訊地址在文末) 今天繼續研究Firebase資料庫,利用google免費提供的這個資料庫服務,今天主要嘗試使用firebase_admin模組來連線fireb
hihor 學習日記:hiho一下 第五十二週 (割邊與割點)
http://hihocoder.com/contest/hiho52/problem/1 題意: 這道題就是求割邊與割點, 割邊與割點 思路: 大致就是用DFS樹來得到low,與dfn比較來判斷當前點的子樹上的點是否與當前點的父點相連,如果不聯,那麼去掉當前點
五十二、SpringBoot配置Filter以及註解配置CAS客戶端過濾器
spring boot 配置Filter過濾器 參考: CAS單點登入詳解 CAS單點登入疑問解答 Filter過濾器,Interceptor攔截器,ControllerAdvice,Aspect切片 1、通過 @WebFilter 註解來配置
問題五十二:怎麼用C++實現矩陣運算
C++程式碼如下: bool matrix_4_4_multiply_4_4(const float matrix1[4][4], const float matrix2[4][4], float (&result)[4][4]) { //求兩個4*4矩陣的乘積 for (int
五十二、linux 編程——網絡介紹
占用 src 網絡會議 地址解析 進行 ip 地址 簡單 操作 transfer 52.1 網絡介紹 使用遠程資源 共享信息、程序和數據 分布處理 52.1.1 協議的概念 計算機網絡中實現通信必須有一些約定,如對速率、傳輸代碼、代碼結構、傳輸控制步驟和出錯控制等約定
四十九、MongoDB資料庫1:MongoDB的增、刪、改、查
一、連線資料庫 如果只在windows下使用:進入資料庫命令:mongo 如果windows要連線虛擬機器(伺服器),命令:mongo 伺服器IP地址:27017 Mongodb ‘無狀態模式’
多線程學習-基礎(十二)生產者消費者模型:wait(),sleep(),notify()實現
都是 exce 生產 runnable 下午 util 庫存 jason 最大 一、多線程模型一:生產者消費者模型 (1)模型圖:(從網上找的圖,清晰明了) (2)生產者消費者模型原理說明: 這個模型核心是圍繞著一個“倉庫”的概念,生產者消費者都是圍繞著:“倉庫”
學習五十二
linux學習14.4 exportfs命令14.5 NFS客戶端問題15.1 FTP介紹15.2/15.3 使用vsftpd搭建ftp exportfs命令 常用選項-a 全部掛載或者全部卸載-r 重新掛載-u 卸載某一個目錄-v 顯示共享目錄以下操作在服務端上vim /etc/exports //增加/t
Linux學習總結(五十二)keepalived 配置高可用
keepalived 高可用 nginx 一 集群介紹 根據功能劃分為兩大類:高可用和負載均衡 高可用集群通常為兩臺服務器,一臺工作,另外一臺作為冗余,當提供服務的機器宕機,冗余將接替 繼續提供服務 實現高可用的開源軟件有:heartbeat、keepalived 負載均衡集群,需要有一臺服
C 語言異常處理(五十二)
異常處理 C 中的異常處理 if...else... setjmp() longjmp() 我們今天來看下異常處理,在看 C++ 的異常處理之前,先來看看 C 語言中的異常處理。那麽什麽是異常呢?在程序運行過程中可能會產生異常,異常(Exception)與 Bug 的區別是