redis的基本命令學習

来源:https://www.cnblogs.com/001zphzphzph/archive/2022/03/31/16067732.html
-Advertisement-
Play Games

redis的基本命令學習 1.簡單理解redis 基於記憶體的key-value資料庫基於c語言編寫的,可以支持多種語言的api //set每秒11萬次,取get 81000次支持數據持久化value可以是string,hash, list, set, sorted set 使用場景: 去最新n個數據 ...


 

redis的基本命令學習

1.簡單理解redis

基於記憶體的key-value資料庫
基於c語言編寫的,可以支持多種語言的api //set每秒11萬次,取get 81000次
支持數據持久化
value可以是string,hash, list, set, sorted set

使用場景:

去最新n個數據的操作
排行榜,取top n個數據 //最佳人氣前10條
精確的設置過期時間
計數器
實時系統, 反垃圾系統
pub, sub發佈訂閱構建實時消息系統
構建消息隊列
緩存

 

 

2.常用命令

溫馨提示:要是有看不懂的可以查看官網 https://redis.io/commands 裡面有詳細介紹,想要瞭解這些基本命令,必須動手實現一篇而不是看一遍。

key  

keys * 獲取所有的key
select 0 選擇第一個庫//redis預設是16個資料庫
move myString 1 將當前的資料庫key移動到某個資料庫,目標庫有,則不能移動
flush db 清除指定庫
randomkey 隨機key
type key 類型
set key1 value1 設置key
get key1 獲取key
mset key1 value1 key2 value2 key3 value3
mget key1 key2 key3
del key1 刪除key
exists key 判斷是否存在key
expire key 10 10過期
pexpire key 1000 毫秒
persist key 刪除過期時間

 

string

set name chao
get name
getrange name 0 1 字元串分段,得到 ch
getset name new_chao 設置值,返回舊值
mset key1 key2 批量設置值 key1 value1 key2 value2
mget key1 key2 批量獲取
setnx key value 不存在就插入(not exists)
setex key time value 過期時間(expire)
setrange key index value 從index開始替換value
incr age 遞增
incrby age 10 遞增
decr age 遞減
decrby age 10 遞減
incrbyfloat 增減浮點數
append 追加
strlen 長度

 

list

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 這裡是根據索引改變值,沒有會報錯ERR index out of range
ltrim mylist 0 4 刪除key,就是刪除0-4之外的值
linsert mylist before pivot a 插入 pivot是以它為軸,進行插入
linsert mylist after pivot a 插入 linsert mylist after name7 name10
rpoplpush list list2 將list中的最後一個值轉移到list2集合中

 

set

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

 

hash

hset myhash name xxx
hget myhash name
hmset myhash name xxx age 25 note "i am notes"
hmget myhash name age note 可以查找多個
hgetall myhash 獲取所有的鍵和值
hexists myhash name 查詢該name是否存在
hsetnx myhash score 100 設置不存在的
hincrby myhash id 1 遞增
hdel myhash name 刪除
hkeys myhash 只取key
hvals myhash 只取value
hlen myhash 長度

 

zset

zadd zset 1 one
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
Zinterstore
zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325 weights 1 1 1 1 1 1 1

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、冒泡排序 原理:相鄰兩元素之間兩兩比較,比較出大值進行賦值互換,再依次與相鄰的元素比較,層層遞進。#互換元素位置,相互賦值。 時間複雜度:最好O(n),最差O(n^2) 1、比較相鄰的兩個元素,如果前一個比後一個大,則交換位置。2、比較完第一輪的時候,最後一個元素是最大的元素。3、這時候最後一個 ...
  • 橋接模式是什麼 橋接模式:橋接是一種結構型設計模式, 可將業務邏輯或一個大類拆分為不同的層次結構, 從而能獨立地進行開發。 為什麼用橋接模式 對於兩個獨立變化的維度,使用橋接模式再適合不過了. 橋接模式怎麼實現 這裡是將computer和printer分成兩層,用介面的方式把強耦合轉化為弱耦合。這兩 ...
  • 我在之前一段時間做過網路通信的系列文章,但是文章還是偏散,沒有一個整體脈絡,本篇就以知識地圖的形式來進行梳理。 知識地圖是一種知識導航系統,並顯示不同的知識存儲之間重要的動態聯繫。本篇主要就是從更高的視角將之前的文章的結構思路展現出來。文章結構的思路實際上也是達到架構師程度要掌握的網路通信知識學習路 ...
  • 觀察者模式又叫做發佈-訂閱模式,屬於行為型模式;觀察者模式通過定義一種一對多得依賴關係,讓多個觀察者對象同時監聽某一個主題對象,這個主題對象在狀態上發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己。 觀察者模式的UML類圖如下: 如上圖所示,觀察者模式主要涉及到抽象主題角色、具體主題角色、抽 ...
  • 網路開發兩大架構 早期數據交互的格式是沒有網路的兩個文件之間的數據交互需要通過第三個文件a,b文件同時和c文件交互,a文件把數據先存放c文件中b文件從c文件取,反之亦然socket (套接字) 是一個收發數據的工具 有了網路之後a文件中的數據,通過網路協議,轉化101010...二進位進行發送a文件 ...
  • **Spring淪陷了!**這樣的標題這幾天是不是看膩了?然而,仔細看看都是拿著之前的幾個毫不相干的CVE來大吹特吹。所以,昨天發了一篇關於最近網傳的Spring大漏洞的文章,聊了聊這些讓人迷惑的營銷文、以及提醒大家不要去下載一些利用漏洞提供補丁的釣魚內容。而對於這個網傳的漏洞,依然保持關註狀態,因 ...
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • 函數的嵌套有兩種方式: 交叉嵌套 迴環嵌套 交叉嵌套 交叉嵌套的方式是在本函數中調用同一級或上一級函數的嵌套方法: def func(foo): print(1) foo() print(3) def a(): print(1) b = func(a) print(b) 輸出的結果為: 1 1 3 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...