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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...