Redis類型之String

1.Redis中的string

? ? ? ? 注意本文以及之后講的redis的類型但是指的value的類型,所有的key都是string

? ? ? ? Redis中的字符串,直接就是按照二進制數據的方式存儲的,不會做任何的編碼轉換,這里相對于mysql就比較好(個人感覺),因為mysql默認的字符集是拉丁文插入中文會失敗。

? ? ? ? string不僅可以存儲文本數據還可以存儲整數、普通文本字符串、JSON、xml、二進制數據,這里值得一提的是redis對于string的類型限制了大小最大為512M,這是因為redis是單線程其希望進行的操作都比較快速。

2.String常用操作

2.1 SET

SET key value [expiration EX seconds | PX milliseconds] [NX | XX]

? ? ? ?redis文檔給出的語法格式說明:[]相當于一個獨立的單元,表示可選項(可有可無),|表示或者的意思,[]和[]之間可以同時存在

????????對于第一個中括號其指的是設不設置過期時間,EX表示設置的時間單位是s而PX表示設置的時間的單位是ms。

? ? ? ? 對于第二個括號中的NX表示如果key不存在才設置,如果key存在則不設置(返回nil),而XX表示key存在才設置(相當于更新key中的value),如果key不存在則返回nil? ? ? ??

2.2 失去年終獎小技巧

? ? ? ? 清除redis上所有的數據的操作,這就等價于刪庫了(drop database)

FLUSHALL                  //輕易不要使用,不然廢了,但是學習中可以隨便用

2.3 GET

GET key   //這個命令還是比較簡單的

·? ? ? ? 對于GET來說,只是支持字符串類型的value,如果value是其他類型,使用GET獲取就會報錯,下面我對list類型的value使用get就出現了報錯

2.4 MGET 以及 MSET

MGET key [key ...]
MSET key value [key value ...]

? ? ? ? 對比于上面的set和get其實mset和mget的區別在于一次操作多組鍵值對。

? ? ? ? 對于多組key和value其實mset和mget是高效的,這是因為我們的這些命令其實是需要通過網絡來發送給redis的服務端的,那么相對于多次發送的set和get顯然是一次發送多組數據的mset和mget更高效

????????

? ? ? ? 但是一次設置太多的數據依舊可能會導致redis阻塞。

2.5 String中存儲的是數字時可以使用的操作

2.5.1 value是整數

????????incr:針對value+1

? ? ? ? incrby:針對value+n

? ? ? ? decr:針對value-1

? ? ? ? decrby:針對value-n

? ? ? ? 這四個操作的返回值都是相應操作后的值,值得一提的是上面的操作如果key不存在會將key視為0創建并進行操作。

? ? ? ? 其實incrby也可以用來實現減法,這就好比加上一個負數。同樣的decrby也可以用來實現加法

2.5.2 value是浮點數

? ? ? ? incrbyfloat:把key對應的value進行+-運算,運算的操作數可以是浮點數,但是并沒有提供decrbyfloat這樣的命令,就只能同加上負數來實現減法

? ? ? ? 這里猜測為什么沒有提供減法版本,可能是因為使用redis進行的計數操作一般都是針對整數進行的。

? ? ? ? 這里因為是多個客戶端對接一個服務端那么上面的這些對數字操作的命令會不會存在線程安全的問題呢?就比如在c++中我們起了兩個線程對同一個變量都進行++10000次但是結果并不是20000一般結果都是比20000小的。但是其實是沒有問題的這是因為redis是一個單線程。

2.6 字符串操作

2.6.1 獲取字符串的長度

APPEND KEY VALUE

? ? ? ? append返回值的長度單位是字節,這是因為redis的字符串并不會對字符編碼做任何處理,換而言之就是redis只認識字節不認識字符。

? ? ? ? append可以用來設置key,如果key已經存在那么append會將value追加到key原來的value中

2.6.2 從某個位置開始替換字符串

SETRANGE key offset value

? ? ? ? offset表示從哪個位置開始,value表示替換的字符串。

2.6.3 截取字符串

GETRANDGE key start end

? ? ? ? 這個區間是左閉右閉的,這里確實需要注意,因為C++中的區間是左閉右開的,并且這里的下標是支持負數的對應關系如下,簡單來說負數就是len-1位置處的元素

3.string內部的三種編碼格式

? ? ? ? int:64位/8字節的整數

? ? ? ? embstr:壓縮字符串。適用于比較短的字符串

? ? ? ? raw:普通字符串。適用于表示更長的字符串。

object encoding  可以查看value的編碼格式

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

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

相關文章

[激光原理與應用-156]:光學器件 - 激光器為什么會出現多余的能量,哪些地方會出現多余能量?

在激光器運行過程中,多余能量的出現是不可避免的物理現象,其根源在于能量轉換與傳輸過程中的非理想特性。以下從能量來源、產生位置及具體機制三方面進行詳細說明:一、多余能量的主要來源泵浦源效率限制泵浦源(如激光二極管、閃光…

Arxiv-Daily

Daily Paper Report - 2025-07-24 12:53 Today’s Recommended Papers 1. Multi-modal Multi-task Pre-training for Improved Point Cloud Understanding Authors: Liwen Liu, Weidong Yang, Lipeng Ma, Ben Fei Deep-Dive Summary: 多模態多任務預訓練以改善點云理解 預…

如何對云環境或者超融合系統進行性能測試?

最近幾個月,公司開啟了新的產品計劃,準備來做一個國產超融合一體機(其實個人覺得現在入行已經晚了太多了,市場基本沒有多少了) POC功能測試過完,但是感覺不到什么優勢,由于芯片架構采用的是arm架…

【web自動化測試】實戰

web自動化測試就是對界面的測試1、編寫測試用例2、參考測試用例,創建自動化測試項目,編寫自動化測試腳本論壇登錄頁:ForumLoginTest.py論壇首頁:ForumListTest.py論壇詳情頁:ForumDetailTest.py論壇編輯頁:…

在Maxscript中隨機化對象變換、顏色和材質

只需幾行Maxscript,即可為3ds Max場景帶來更多活力和變化! 在本文中,您將學習如何快速隨機化選定對象的位置、旋轉、線顏色和材質。 非常適合在ArchViz、動態圖形和產品可視化項目中創建更自然、更少機械的布局。 為什么要使用隨機化腳本? 1.快速為場景添加自然隨機性 2.…

分類數據集 - 交通事故場景分類數據集下載

數據集介紹:交通事故場景分類數據集,真實交通場景高質量圖片數據;適用實際項目應用:公共場所監控場景下是否發生交通事故檢測項目,以及作為監控場景通用交通檢測數據集場景數據的補充;數據集類別&#xff1…

內網公網詳解,及無公網IP內網穿透給外網直接遠程連接訪問的具體實現方法步驟

一、什么是內網、外網1、內網IP(局域網IP)是指在私有網絡或局域網內部使用的IP地址,無法直接從互聯網訪問,需通過NAT(網絡地址轉換)技術實現對外通信。內網IP(Intranet IP)是專為局域…

Redis協議數據遷移方式

主從復制(REPLICAOF/SLAVEOF):目標實例掛為從節點,通過復制協議全量增量同步后切換為主。模擬從節點工具:模擬復制協議同步數據,常見兩種實現:(1) 拉取全量和增量命令流,在本地生成 …

英語中日期與時間縮寫

日常使用中,時間縮寫無處不在。掌握這些縮寫不僅能提高溝通效率,還能讓您的英語表達更加地道和專業。本文將系統性地介紹英語中各類時間相關縮寫,包括月份、星期、時刻表達等,并提供實用記憶技巧和應用場景。 一、時間縮寫基礎概…

【Spring Cloud】-- RestTeplate實現遠程調用

實現遠程調用有很多種方式,這里我們使用RestTemplate來進行實現。 REST :表現層資源狀態轉移(資源在網絡中以某種表現形式進行狀態轉移),是一種軟件架構風格,狀態轉移:數據狀態的變化。 表現層&…

2025年信創政策解讀:如何應對國產化替代挑戰?(附禪道/飛書多維表格/華為云DevCloud實戰指南)

本文核心產品:??禪道(國產項目管理工具)、飛書多維表格(協同辦公工具)、華為云DevCloud(云端研發平臺)?? ——在“自主可控”成為國家戰略關鍵詞的2025年,國產化替代已從“可選動…

如何讓 RAG 檢索更高效?——大模型召回策略全解

如何讓 RAG 檢索更高效?——大模型召回策略全解 一、引子:RAG 的“強”靠得住嗎? RAG(Retrieval-Augmented Generation)作為一種將文檔檢索與大語言模型結合的框架,已成為企業落地知識問答、搜索增強、智能…

Bilateral Reference for High-Resolution Dichotomous Image Segmentation

代碼來源 https://github.com/ZhengPeng7/BiRefNet 模塊作用 DIS 是一種旨在對高分辨率圖像中的目標物體進行精確分割的技術,尤其適用于具有復雜細微結構的物體,例如細長的邊緣或微小細節。傳統方法在處理這類任務時往往難以捕捉細微特征或恢復高分辨…

RAGFlow 0.20.0 : Multi-Agent Deep Research

Deep Research:Agent 時代的核心能力2025 年被稱為 Agent 落地元年,在解鎖的各類場景中,最有代表性之一,就是 Deep Research 或者以它為基座的各類應用。為什么這么講? 因為通過 Agentic RAG 及其配套的反思機制&#…

CMakeLists.txt學習

一:#是行注釋 ,[[ 塊注釋 ]]0.cmake_minimum_required: 指定使用的cmake的最低版本1.project() 定義工程名稱并可以指定工程的版本,工程描述,web主頁地址,支持的語言(默認情況支持所有語言)2.…

Pytorch-04 搭建神經網絡架構工作流

搭建神經網絡架構 在pytorch中,神經網絡被抽象成由一系列對數據執行特定操作的層或者模塊組成,比如下面的Attention實現,每個塊都是一個模塊或者層。 如果你想快速搭建網絡架構,torch.nn這個命名空間提供了所有很多開箱即用的層…

從“碎片化”到“完美重組”:IP報文的分片藝術

前言 在網絡通信中,當IP層需要傳輸的數據包大小超過數據鏈路層的MTU限制時,就必須進行分片處理。本文將完整解析IP分片的工作機制,包括分片字段的作用、如何減少分片,以及分片報文的組裝原理。 IP報頭解析請參考&#xff…

[GESP202306 四級] 2023年6月GESP C++四級上機題超詳細題解,附帶講解視頻!

本文為2023年6月GESP C四級的上機題目的詳細題解!覺得寫的不錯或者有幫助可以點個贊啦! (第一次講解視頻,有問題可以指出,不足之處也可以指出) 目錄 題目一講解視頻: 題目二講解視頻: 題目一: 幸運數 題目大意: …

內網穿透 FRP 配置指南

關鍵詞:內網穿透、FRP配置、frps、frpc、遠程訪問、自建服務器、反向代理、TCP轉發、HTTP轉發 在開發或部署項目時,我們經常遇到內網設備無法被公網訪問的問題,例如你想從外網訪問你家里的 NAS、遠程調試開發板,或是訪問本地測試環…

SpringBoot 信用卡檢測、OpenAI gym、OCR結合、DICOM圖形處理、知識圖譜、農業害蟲識別實戰

信用卡欺詐檢測通常使用公開數據集 數據準備與預處理 信用卡欺詐檢測通常使用公開數據集如Kaggle的信用卡交易數據集。數據預處理包括處理缺失值、標準化數值特征、處理類別特征。在Spring Boot中,可以使用pandas或sklearn進行數據預處理。 // 示例:使用Spring Boot讀取CS…