redis學習(四)

一、Redis 鍵(key)

1、Redis 鍵命令用于管理 redis 的鍵。

2、Redis 鍵命令的基本語法如下:redis 127.0.0.1:6379> COMMAND KEY_NAME

3、常用key命令

   keys *           獲取所有的keyselect 0         選擇第一個庫move myString 1  將當前的數據庫key移動到某個數據庫,目標庫有,則不能移動flush db         清除指定庫randomkey        隨機keytype key         類型set key1 value1  設置keyget key1         獲取keymset key1 value1 key2 value2 key3 value3mget key1 key2 key3del key1         刪除keyexists key       判斷是否存在keyexpire key 10    10過期pexpire key 1000 毫秒persist key      刪除過期時間

二、Redis 字符串(String)

1、Redis 字符串數據類型的相關命令用于管理 redis 字符串值,基本語法如下:COMMAND KEY_NAME

2、常用命令

    set name cxx        設置name為cxxget name           獲取namegetrange name 0 -1        字符串分段getset name new_cxx       設置值,返回舊值mset key1 key2            批量設置mget key1 key2            批量獲取setnx key value           不存在就插入(not exists)setex key time value      過期時間(expire)setrange key index value  從index開始替換valueincr age        遞增incrby age 10   遞增decr age        遞減decrby age 10   遞減incrbyfloat     增減浮點數append          追加strlen          長度getbit/setbit/bitcount/bitop    位操作

三、Redis 哈希(Hash)

1、Redis hash 是一個string類型的field和value的映射表,hash特別適合用于存儲對象。

? ? ?Redis 中每個 hash 可以存儲 232?- 1 鍵值對(40多億)。

2、常用命令

   hset myhash name cxxhget myhash namehmset myhash name cxx age 25 note "i am notes"hmget myhash name age note   hgetall myhash               獲取所有的hexists myhash name          是否存在hsetnx myhash score 100      設置不存在的hincrby myhash id 1          遞增hdel myhash name             刪除hkeys myhash                 只取keyhvals myhash                 只取valuehlen myhash                  長度

四、Redis 列表(List)

1、Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

一個列表最多可以包含 232?- 1 個元素 (4294967295, 每個列表超過40億個元素)。

2、常用命令

lpush mylist a b c  左插入
rpush mylist x y z  右插入
lrange mylist 0 -1  數據集合
lpop mylist         彈出元素
rpop mylist         彈出元素
llen mylist         長度
lrem mylist count value  刪除
lindex mylist 2          指定索引的值
lset mylist 2 n          索引設值
ltrim mylist 0 4         刪除key
linsert mylist before a  插入
linsert mylist after a   插入
rpoplpush list list2     轉移列表的數據

 

五、Redis 集合(Set)

1、Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據。

2、Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是 O(1)。

集合中最大的成員數為 232?- 1 (4294967295, 每個集合可存儲40多億個成員)。

3、常用命令

sadd myset redis    向名為myset集合中插入元素redis
smembers myset       數據集合
srem myset set1      刪除
sismember myset set1 判斷元素是否在集合中
scard key_name       個數
sdiff | sinter | sunion 操作:集合間運算:差集 | 交集 | 并集
srandmember          隨機獲取集合中的元素
spop                 從集合中彈出一個元素

六、Redis 有序集合(sorted set)

1、Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員

?  不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

2、有序集合的成員是唯一的,但分數(score)卻可以重復。

3、集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為 232 - 1?(4294967295, 每個集合可存儲40多億個成員)。

4、常用命令

zadd zset 1 one          向名為zset的有序集合中添加值one并關聯上分數1
zadd zset 2 two
zadd zset 3 three
zincrby zset 1 one              增長分數
zscore zset two                 獲取分數
zrange zset 0 -1 withscores     范圍值
zrangebyscore zset 10 25 withscores 指定范圍的值
zrangebyscore zset 10 25 withscores limit 1 2 分頁
Zrevrangebyscore zset 10 25 withscores  指定范圍的值
zcard zset  元素數量
Zcount zset 獲得指定分數范圍內的元素個數
Zrem zset one two        刪除一個或多個元素
Zremrangebyrank zset 0 1  按照排名范圍刪除元素
Zremrangebyscore zset 0 1 按照分數范圍刪除元素
Zrank zset 0 -1    分數最小的元素排名為0
Zrevrank zset 0 -1  分數最大的元素排名為0

七、Redis HyperLogLog

1、Redis HyperLogLog 是用來做基數統計的算法,HyperLogLog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定的、并且是很小的

 ? 在Redis里面,每個 HyperLogLog 鍵只需要花費 12 KB 內存,就可以計算接近 2^64 個不同元素的基 數。這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比。

 ? 但是,因為 HyperLogLog 只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個元素。

2、基數:集合中不同元素的數量。比如 {'apple', 'banana', 'cherry', 'banana', 'apple'} 的基數就是 3 。

  估算值:算法給出的基數并不是精確的,可能會比實際稍微多一些或者稍微少一些,但會控制在合理的范圍之內。

3、常用命令:

  PFADD key element [element ...]:將任意數量的元素添加到指定的 HyperLogLog 里面。

  PFCOUNT key [key ...] :?返回給定 HyperLogLog 的基數估算值

  PFMERGE destkey sourcekey [sourcekey ...]:將多個 HyperLogLog 合并為一個 HyperLogLog ,合并后的 HyperLogLog 的基數估算值是通過對所有
給定 HyperLogLog 進行并集計算得出的。

?

借鑒博客:https://www.cnblogs.com/cxxjohnson/p/9072383.html

     https://www.runoob.com/redis/redis-hyperloglog.html

     https://www.cnblogs.com/ysuzhaixuefei/p/4052110.html

轉載于:https://www.cnblogs.com/dongtian-blogs/p/10801305.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCP/IP(三):IP協議相關技術

在前兩篇文章中,我分別介紹了數據鏈路層和網絡層的IP協議。雖然這個系列教程的重點是搞定 TCP/IP,不過不用著急,本文簡要介紹完與 IP 協議相關的技術,下一篇文章就會正式、詳細的介紹 傳輸層與 TCP 協議。這篇文章會介紹 DNS、ARP…

Node — 第一天

Node-01 會 JavaScript,就能學會 Node.js!!! **Node.js 的官網地址: ** Node.js 的學習路徑: JavaScript 基礎語法 Node.js 內置 API 模塊(fs、path、http等) 第三方 API 模塊&…

TCP/IP(四):TCP 與 UDP 協議簡介

從本章開始,我們開始介紹最重要的傳輸層。傳輸層位于 OSI 七層模型的第四層(由下往上)。顧名思義,傳輸層的主要作用是實現應用程序之間的通信。網絡層主要是保證不同數據鏈路下數據的可達性,至于如何傳輸數據則是由傳輸…

Node — 第二天

http模塊 搭建服務器的步驟 ① 導入 http 模塊 ② 創建 web 服務器實例 ③ 為服務器實例綁定 request 事件,監聽客戶端的請求 ④ 啟動服務器 // ① 導入 http 模塊 const http require(http);// ② 創建 web 服務器實例 const server http.createServer();/…

《學習之道》第九章不要突擊工作

靈感從天而降的時刻確實是存在的。 這樣少見的創造性突破,通常是在經歷了一番神經緊張的準備、竭盡全力的努力,甚至包括熬夜工作后才姍姍來遲。這與 數學 和 科學標準的一天學習 是大不相同的。 它更像體育運動:每隔一陣子會有一天的比賽&…

TCP/IP(五):TCP 協議詳解

上一節 中講過,TCP 協議是面向有連接的協議,它具有丟包重發和流量控制的功能,這是它區別于 UDP 協議最大的特點。本文就主要討論這兩個功能。 數據包重發 數據發送 丟包重發的前提是發送方能夠知道接收方是否成功的接收了消息。所以&#…

nodeJS — 學習的筆記

Node介紹 為什么要學習Node.js 企業需求 具有服務端開發經驗更改front-endback-end全棧開發工程師基本的網站開發能力 服務端前端運維部署 多人社區 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MVqHkEIo-1588084625862)(C:\Users\A\AppData\R…

TCP/IP(六):HTTP 與 HTTPS 簡介

本文是準備面試過程中網絡部分總結整理的最后一篇文章,主要介紹以下知識: HTTP 協議概述POST 請求和 GET 請求Cookie 和 Session數據傳輸時的加密HTTPS 簡介 HTTP 協議 在 OSI 七層模型中,HTTP 協議位于最頂層的應用層中。通過瀏覽器訪問網…

Node — 第三天

模塊化 什么是模塊化 模塊化是指解決一個復雜問題時,自頂向下逐層把系統劃分成若干模塊的過程。 對于整個系統來說,模塊是可組合、分解和更換的單元。 生活中的模塊化 編程中的模塊化 編程領域中的模塊化,就是遵守固定的規則,…

FireDAC 中文字段過濾問題

當使用 FireDAC Filter 過濾數據的時候,通常這樣寫: FDMemTable.Filtered : False; FDMemTable1.Filter : 姓名 string(edtFilter.Text).QuotedString; FDMemTable.Filtered : True; 將會報錯:[FireDAC][Stan][Eval]-107. Invalid characte…

UIScrollViewDelegate-代理API詳解

在iOS編程中,經常用到UIScrollView控件。自然也會用到UIScrollViewDelegate協議。 今天就抽空,研究了一下UIScrollViewDelegate中所有的委托方法。 僅做Mark!如有,錯誤之處,歡迎留言指正,交流!貼…

License for package Android SDK Build-Tools 28.0.2 not accepted.(MAC)

https://blog.csdn.net/user11223344abc/article/details/83997907轉載于:https://www.cnblogs.com/dtdxrk/p/10812469.html

Express — 使用步驟

Express Express 介紹安裝搭建服務器的步驟express提供的新方法GET接口 獲取GET中的請求參數 POST接口 獲取POST請求提交的數據 中間件原理中間件語法中間件初體驗(設置響應頭)中間件開放靜態資源中間件接收POST請求體中間件返回404頁面 express 介紹 E…

大模型工具_Langchain-Chatchat

https://github.com/chatchat-space/Langchain-Chatchat 原Langchain-ChatGLM 1 功能 整體功能,想解決什么問題 基于 Langchain 與 ChatGLM 等LLM模型,搭建一套針對中文場景與開源模型,界面友好、可離線運行的知識庫問答解決方案。 當前解決…

iOS 鍵盤風格詳解UIKeyboardType

一、鍵盤風格 UIKit框架支持8種風格鍵盤。 [java] view plaincopy print?typedef enum { UIKeyboardTypeDefault, // 默認鍵盤:支持所有字符 UIKeyboardTypeASCIICapable, // 支持ASCII的默認鍵盤 UIKeyboardTypeNu…

MySQL Hardware--FIO壓測

FIO參數 filename/export/1.txt 支持文件系統或者裸設備,-filename/dev/sda2或-filename/dev/sdb direct1 測試過程繞過機器自帶的buffer,使測試結果更真實 rwrandwread 測試隨機讀的I/O rwrandwrite 測試隨機…

Node — 第四天(Promise與路由)

Promise - ES6新對象 Promise能夠處理異步程序。 回調地獄 JS中或node中,都大量的使用了回調函數進行異步操作,而異步操作什么時候返回結果是不可控的,如果我們希望幾個異步請求按照順序來執行,那么就需要將這些異步操作嵌套起來…

xcode8 升級后注釋快捷鍵不能使用的解決方法

一種說法: 這個是因為蘋果解決xcode ghost。把插件屏蔽了。解決方法 命令運行: sudo /usr/libexec/xpccachectl 然后必須重啟電腦后生效 還有一種說法:不用指令直接重啟就可以了。

winform datagridview控件使用

最近做項目時&#xff0c;顯示查詢結果總需要綁定到datagridview控件上顯示&#xff0c;總結了給datagridview綁定數據的方式&#xff0c;以及導出datagridview數據到excel表格&#xff0c;如有錯誤請多指教 1.直接綁定數據源&#xff0c;可以綁定的數據格式有List<T>,Da…

Node — 第五天

1. MySQL數據庫 phpstudy 數據庫服務器及圖形化軟件 軟件鏈接 鏈接&#xff1a;https://pan.baidu.com/s/1F8wdoMstHAJkINfDKDejsw 提取碼&#xff1a;xl3k 數據庫對于我們前端同學來說&#xff0c;就是一個了解。 對于不會變化的數據&#xff08;省、市、縣&#xff09;&…