Redis學習 - 基礎篇

Redis學習 - 基礎篇

一. 簡介

Redis 是一個高性能的key-value數據庫,常用的數據類型如下:string,list,set,zset,hash

二. 安裝

Widows和Linux下如何安裝Redis-CSDN博客

三. 常用命令

配置及數據庫操作

命令說明
config get [config_name]獲取指定的配置信息( * 查看全部)
info [info_name]查看redis服務器信息
select [db_number]切換到指定數據庫(0 - 15)

key的操作

命令說明
set [key] [value]
del [key]
rename [key] [newKeyName]改名
keys [pattern]
exists [key]
expire [key] [seconds]設置key的過期時間
persist [key]取消key的過期時間
ttl [key]查看key的過期時間(-1表示永久,-2表示不存在)
move [key] [db]移動 key 去別的庫
type [key]查看key的類型

四. 常用數據類型

1. String

命令說明
set [key] [value]
setnx [key] [value]不存在時才創建
setex [key] [seconds] [value]設指定過期時間的字符串鍵值對
mset [key1] [value1] …批量增加/修改
del [key]
mset [key1] [value1] …批量增加/修改
append [key] [append_value]追加內容
incr [key]將value增加1
decr [key]將value減少1
get [key]
msget [key1] …批量獲取
getrange [key] [start] [end]獲取截斷字符串
strlen [key]返回對應 value 的長度

2. Hash

Hash用來存對象,命令類似于String : h + XXX

命令說明
hset [key] [field] [value]
hsetnx [key] [field] [value]不存在時才插入
hmset [key] [field1] [value1] …批量插入
hdel [key] [field] …批量刪除field
hget [key] [field]獲取指定的field的value值
hgetall [key]獲取所有field的value值
hvals [key]獲取所有的value值
hlen [key]獲取field的數量
hkeys [key]獲取所有field值

3. List

雙頭隊列

命令說明
lpush [key] [value1] …隊頭插入
rpush [key] [value1] …隊尾插入
lpop [key]隊頭出
rpop [key]隊尾出
lrem [key] [count] [value]從隊頭到隊尾刪除指定數量的值為value的元素(0表示全部刪除,否則刪除的數量為絕對值的count)
lset [key] [index] [newValue]將指定index的值改為newValue
lindex [key] [index]獲取指定索引的元素(隊頭為0)
lrange [key] [start] [end]從隊頭往隊尾輸出
llen [key]列表大小

4. Set

類似于Java的HashSet<String>

命令說明
sadd [key] [value1] …單個/批量插入
srem [key] [value1]…單個/批量刪除
sismember [key] [value]是否包含指定value
smembers [key]遍歷輸出所有元素
scard [key]輸出長度
集合操作
sinter [key1] [key2] …取交集
sinterstore [key] [key1] [key2] …取后面集合的交集存到key所在set
sdiff [key1] [key2]…取差集
sunion [key1] [key2]…取并集
sunionstore [key] [key1] [key2] …取后面集合的并集存到key所在set

5. Sorted Set

HashMap<String, Integer>

命令說明
zadd [key] [score1] [member1] …單個/批量插入
zrem [key] [member1] …單個/批量刪除
zremrangebyscore [key] [min] [max]刪除指定分數區間的元素
zremrangebyrank [key] [start] [end]刪除指定索引范圍的元素(按升序排名的)
zincrby [key] [increment] [member]給member加上increment分
zrange [key] [start] [end] [withscores]按分數升序輸出指定索引區間的元素 (加了withscores分數也輸出)
zrevrange [key] [start] [end] [withscores]按分數降序輸出指定索引區間的元素(加了withscores分數也輸出)
zrangebyscore [key] [min] [max] [withscores]按照分數區間升序輸出元素
zcount [key] [min] [max]獲取指定分數區間的元素數量
zrank [key] [member]獲取指定member的索引(按照分數升序的排名 - 1)
zrevrank [key] [member]獲取指定member的索引(按照分數降序的排名 - 1)
zcard [key]獲取長度

五. 消息的訂閱發布

開兩個客戶端(兩個cmd窗口,執行redis-cli.exe),一個作為訂閱方,一個作為發布方

訂閱方

SUBSCRIBE redisChat

發布方

publish redisChat "hello"

下圖為執行結果,左邊為訂閱方,右邊為發布方:
在這里插入圖片描述

命令說明
pubscribe [pattern1] …訂閱單個/多個頻道
UNSUBSCRIBE [pattern1]…退訂單個/多個頻道
publish [pattern] [message]將message發布到pattern頻道
pubsub channels查看訂閱的頻道

六. 事務

和數據庫事務差不多

命令說明
multi標記事務開始
exec執行事務中的所有命令
discard取消事務
watch [key]…下次事務執行前,如果這些key的內容被修改了,則打斷事務
unwatch取消所有的watch

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

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

相關文章

《信息技術與信息化 》是什么級別的期刊?是正規期刊嗎?能評職稱嗎?

問題解答 問&#xff1a;《信息技術與信息化 》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知網收錄的第一批認定學術期刊。 問&#xff1a;《信息技術與信息化 》級別&#xff1f; 答&#xff1a;省級。主管單位&#xff1a;山東省科學技術協會 主辦單…

國內磁性器件核心企業『云路新能源』攜手企企通正式啟動SRM項目,供應鏈競爭力再上新臺階

近日&#xff0c;珠海黎明云路新能源科技有限公司&#xff08;以下簡稱“云路新能源”&#xff09;攜手企企通啟動SRM數字化采購供應鏈管理項目&#xff0c;雙方相關負責人與項目組成員出席本次啟動會。 本次采購數字化項目建設&#xff0c;企企通將助力云路新能源實現采購全場…

智能無人數字直播間 打造24小時的無人直播間源碼系統 帶網站的安裝代碼包以及搭建教程

系統概述 智能無人數字直播間系統是一種基于人工智能技術的軟件工具&#xff0c;它結合了高精度掃描建模、自動化控制、多模態生成等多項先進技術&#xff0c;能夠實現對真實人物的高度仿真&#xff0c;并自主執行各類直播任務。該系統不僅支持24小時不間斷直播&#xff0c;還…

微信小程序引入自定義子組件報錯,在 C:/Users/***/WeChatProjects/miniprogram-1/components/路徑下***

使用原生小程序開發時候&#xff0c;會報下面的錯誤&#xff0c; [ pages/button/button.json 文件內容錯誤] pages/button/button.json: [“usingComponents”][“second-component”]: “…/…/components/second-child/index”&#xff0c;在 C:/Users/***/WeChatProjects/m…

Windows 中修改 MySQL 密碼

沒想到這樣一個簡單的需求&#xff0c;愣是試了半天沒試到有用的命令&#xff0c;最后終于找到一個有用的&#xff0c;在此做個記錄&#xff1a; set password for rootlocalhost 你的新密碼;

【C++與python】| splice語法對比列表切片

splice用法詳解 C 中的 splice示例 1&#xff1a;將整個列表 lst2 插入到 lst1 中某個位置示例 2&#xff1a;將 lst2 的一個元素插入到 lst1 中某個位置 Python中的列表切片&#xff08;Slicing&#xff09;示例 1&#xff1a;獲取列表的子列表示例 2&#xff1a;修改列表的子…

禪道二次開發——禪道zentaoPHP框架擴展機制——對視圖層(view)擴展

視圖文件的擴展分為兩種方式&#xff0c;一種是完全覆蓋&#xff0c;第二種是通過鉤子機制來擴展。 一、完全覆蓋 視圖文件的覆蓋可以通過完全覆蓋的方式來重新定義。比如我對bug模塊的create頁面進行擴展。原來的視圖文件是存放在module/bug/view/create.html.php。如果需要…

Android約束布局的概念與屬性(2)

目錄 3&#xff0e;鏈式約束4&#xff0e;輔助線 3&#xff0e;鏈式約束 如果兩個或以上控件通過下圖的方式約束在一起&#xff0c;就可以認為是他們是一條鏈&#xff08;如圖5為橫向的鏈&#xff0c;縱向同理&#xff09;。 圖5 鏈示意圖 如圖5所示&#xff0c;在預覽圖中選…

解讀網絡安全公司F5:助企業高效簡化多云和應用部署

伴隨企業加速數字化轉型工作、擴展到新的基礎設施環境并采用微服務架構&#xff0c;企業正擁抱混合和多云基礎設施所帶來的靈活性。Ernst & Young調查數據顯示&#xff0c;84%的企業正處于向現有網絡安全解決方案套件添加多種新技術的早期階段。企業同樣意識到&#xff0c;…

nftables(3)表達式(1)數據類型

簡介 前面文章主要介紹的是nftables的基本原理和基礎的配置&#xff0c;如nftables基本的表、鏈、規則的創建和管理。本篇文章主要介紹的是表達式EXPRESSIONS。 在網絡安全和數據處理中&#xff0c;表達式&#xff08;Expressions&#xff09;扮演著非常重要的角色。它們用于…

二. Linux內核

一. Linux內核源碼目錄分析 arch 包含與體系結構相關的代碼&#xff0c;用于支持不同硬件體系結構的實現。這個目錄下會根據不同的架構&#xff08;如x86、arm、mips等&#xff09;進一步細分。 block 用于處理塊設備的子系統&#xff0c;包含與塊設備驅動和I/O調度相關的代碼。…

力扣--滑動窗口最大值

給你一個整數數組 nums&#xff0c;有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回 滑動窗口中的最大值 。 示例 1&#xff1a; 輸入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 輸…

Vue核心 — Vue2響應式原理和核心源碼解析(核心中的核心)

一、前置知識 1、Vue 核心概念 Vue 是什么? Vue 是一款用于構建用戶界面的 JavaScript 框架。它基于標準 HTML、CSS 和 JavaScript 構建&#xff0c;并提供了一套聲明式的、組件化的編程模型&#xff0c;幫助你高效地開發用戶界面。 Vue 核心特點是什么? 響應式數據綁定:…

docker安裝tomcat容器

docker安裝tomcat容器 1、拉取鏡像 docker pull tomcat:8.5.46-jdk8-openjdk2、運行 docker run -d --name tomcat tomcat:8.5.46-jdk8-openjdk ? docker cp tomcat:/usr/local/tomcat/conf /data/tomcat/ ? docker rm -f tomcat ? docker run -d --name tomcat -p 8…

絕區捌--將GPT幻覺的發生率從20%以上降低到2%以下

總結&#xff1a;我們沒有使用微調&#xff0c;而是結合使用提示鏈和預處理/后處理來將幻覺發生率降低一個數量級&#xff0c;但這確實需要對 OpenAI 進行 3-4 倍的調用。還有很大的改進空間&#xff01; 使用 GPT 等大型語言模型面臨的最大挑戰之一是它們傾向于捏造信息。 這…

from functools import partial有什么用

functools.partial 是 Python 的 functools 模塊中的一個非常有用的函數&#xff0c;它用于部分應用一個函數。這意味著你可以創建一個新的函數&#xff0c;這個新函數是原函數的一個子集&#xff0c;即預先填充了原函數的一些參數&#xff0c;并返回這個新函數。這樣&#xff…

使用Python繪制QQ圖并分析數據

使用Python繪制QQ圖并分析數據 在這篇博客中&#xff0c;我們將探討如何使用Python中的pandas庫和matplotlib庫來繪制QQ圖&#xff08;Quantile-Quantile Plot&#xff09;&#xff0c;并分析數據文件中的內容。QQ圖是一種常用的統計圖表&#xff0c;用于檢查一組數據是否服從…

VUE+Spring Flux實現SSE長連接

VUE代碼 // 初始化EventSourceinitEventSource(url) {const token getAccessToken();const eventSource new EventSourcePolyfill(url, {headers: {Authorization: Bearer ${token},tenant-id: getTenantId(),}});eventSource.onerror (e) > {console.log("SSE連接錯…

C# 下sendmessage和postmessage的區別詳解與示例

文章目錄 1、SendMessage2、PostMessage3、兩者的區別&#xff1a; 總結 在C#中&#xff0c;SendMessage和PostMessage是兩個用于Windows編程的API&#xff0c;它們用于向窗口發送消息。這兩個方法都位于System.Windows.Forms命名空間中&#xff0c;通常用于自動化Windows應用程…

GitHub:現代軟件開發的協作平臺

引言 在現代軟件開發中&#xff0c;協作工具的選擇至關重要。GitHub作為全球最大的代碼托管平臺&#xff0c;已經成為開發者們不可或缺的工具。自2008年成立以來&#xff0c;GitHub不僅改變了代碼托管和協作的方式&#xff0c;還在開源軟件的發展中扮演了重要角色。本文將詳細…