redis基礎(三十六)

安裝redis、配置redis

目錄

一、 概述

(一)NoSQL

1、類型

2、應用場景

(二)Redis

二、安裝

(一)編譯安裝

(二)RPM安裝

三、目錄結構

四、命令解析

五、redis登錄更改

1、發現問題

2、解決辦法

六、數據庫操作

(一)登錄數據庫

(二)幫助信息

1、help 命令字

2、tab補齊

(三)庫操作

1、切換

(四)數據操作

七、redis持久化

(一)RDB模式

(二)AOF模式


一、 概述

(一)NoSQL

? ? ? ?NoSQL(Not Only SQL)是一種非關系型數據庫(Non-Relational Database),與傳統的關系型數據庫(SQL)相對應。NoSQL數據庫以靈活的模式和可伸縮性為特點,適用于大規模數據的存儲和處理

? ? ? ?與關系型數據庫不同,NoSQL數據庫不使用固定的表格和預定義的模式,而是使用動態的模式和靈活的數據模型。這意味著在NoSQL數據庫中,可以存儲不同結構和類型的數據,并且可以根據需求隨時更改模式,而不需要進行預定義的表定義和模式修改

? ? ? ?NoSQL數據庫的設計目標是提供高性能、高可用性和可伸縮性。它們通常采用分布式架構,可以在多個服務器上分布數據,并以水平擴展的方式處理大量的讀寫操作。

? ? ? ?NoSQL數據庫被廣泛應用于互聯網大數據領域,適用于需要處理海量數據和實時數據的場景,例如社交媒體、物聯網、日志分析等。常見的NoSQL數據庫包括MongoDBCassandraRedisCouchbase等。

1、類型

文檔型數據庫(Document-oriented database)MongoDB
Couchbase
Apache CouchDB
RethinkDB
列族數據庫(Column-family database)Apache Cassandra
Apache HBase
ScyllaDB
圖形數據庫(Graph database)Neo4j
Amazon Neptune
Microsoft Azure Cosmos DB (Graph API)
鍵值對數據庫(Key-value database)Redis
Riak
CouchDB
對象數據庫(Object-oriented database)ObjectDB
db4o
Versant Object Database

2、應用場景

? ? ? ? 緩存:Redis最常用的應用場景就是緩存,它可以緩存各種類型的數據,如數據庫查詢結果、API返回結果等,以提高應用程序的響應速度和并發性能。

? ? ? ? 分布式鎖:Redis的分布式鎖可以確保在分布式系統中對某個資源的互斥訪問,避免多個節點出現并發操作的問題。

? ? ? ? 計數器:Redis支持對計數器的操作,能夠方便地實現各種計數器的功能,如網站訪問次數計數、訂單數量計數等。

? ? ? ? 會話管理:Redis可以用來管理會話信息,實現會話的狀態存儲和共享,避免了單點故障的問題。

? ? ? ? 消息隊列:Redis支持發布訂閱模式,可以作為一個輕量級的消息隊列使用,實現異步消息處理和任務派發等功能。

(二)Redis

? ? ? ?Redis [Remote Dictionary Server] 是一個開源(BSD許可),內存存儲的數據結構服務器,可用作數據庫,高速緩存和消息隊列代理。它支持字符串、哈希表、列表、集合、有序集合,位圖,hyperloglogs等數據類型。內置復制、Lua腳本、LRU收回、事務以及不同級別磁盤持久化功能,同時通過Redis Sentinel提供高可用,通過Redis Cluster提供自動分區。

? ? ? ?基本的鍵值對操作,Redis還支持豐富的功能,如發布/訂閱(pub/sub)模式、事務、Lua腳本、分布式鎖等。它還可以作為緩存層,提供高速緩存以加快應用程序的性能。

? ? ? ?Redis被廣泛應用于互聯網領域,用于緩存、會話存儲、消息隊列、實時分析、計數器等場景。它的簡單性和高性能使得它成為許多應用程序的首選數據存儲解決方案。

? ? 英文官網(官方高版本)

https://redis.io/

? ? 中文官網(版本相對較低)

https://www.redis.net.cn/

? ? 監聽端口號? ? ? ? 6379

? ? 軟件包? ? ? ? ? ?? ? redis

? ? 數據類型

? ? ? ? 字符串(string)

? ? ? ? 哈希值(hash)

? ? ? ? 列表(list)

? ? ? ? 集合(set)

? ? ? ? 有序集合(sorted set)

? ? ? ? 位圖(bitmap)

? ? ? ? hyperloglogs

二、安裝

(一)編譯安裝

wget http://download.redis.io/releases/redis-5.0.8.tar.gz
make && make install

(二)RPM安裝

? ?安裝repl源

yum install -y epel-release

?此命令數輸入兩次為升級repl源?

yum install -y redis

?? ? 啟動redis(任選其一即可)

systemctl start redis
redis-server /etc/redis.conf

? ? 默認監聽127.0.0.1地址

三、目錄結構

查看已安裝軟件包的安裝路徑及生成的文件

rpm ?-ql redis

?? ? ? ? 主配置文件

vim /etc/redis.conf

? ? ? ? ?常用主配置文件解析

bind 127.0.0.1監聽地址
port 6379監聽端口號
daemonize是否將程序或進程轉變為守護進程,在后臺運行
pidfile

指定通過該配置文件啟動 reids進程后的PID文件名稱

loglevel定義日志級別
logfile定義日志存儲路徑
databases指定默認數據庫數量
save定義單位時間內key的改變次數
dbfilename定義存儲RDB持久化數據的文件名稱
dir定義RDB與AOF文件的存儲目錄
appendonlyAOF的啟停
appendfilename定義AOF持久化文件的名稱
appendfsync定義AOF數據同步間隔
requirepass?設置登錄redis的密碼

? ? ? ? ? 哨兵模式配置文件

vim /etc/redis-sentinel.conf 

? ? ? ? ?持久化文件存儲目錄

cd /var/lib/redis

?? ? ? ? ?日志文件存儲目錄

cd /var/log/redis

? ? ? ? ?PID文件存儲目錄

cd /var/run/redis

四、命令解析

? ? ? ? redis啟動命令

redis-server 配置文件目錄

? ? ? ? redis登錄命令

redis-cli

命令選項

-hredis服務器IP
-p指定訪問端口號
-a指定登錄密碼
-n指定數據庫編號

-a 指定登錄密碼的配置文件設置在/etc/redis.conf

?命令使用方式

redis-cli -h 192.168.41.130 -p 6379 -a 123123 -n 1

? ? ? ?注:如果端口號為默認端口,可以不進行指定;密碼可-a輸入,也可進入后auth 123123 輸入密碼;-n端口為0~16 ,共17個數據庫。

? ? ? ? 檢查RDB文件?

redis-check-rdb
redis-check-rdb /var/lib/redis/dump.rdb

?內容解析:

[offset 0] Checking RDB file /var/lib/redis/dump.rdb:開始檢查RDB文件/var/lib/redis/dump.rdb

[offset 27] AUX FIELD redis-ver = '3.2.12'redis-ver是RDB文件中的一個輔助字段,指示Redis的版本號為3.2.12。

[offset 41] AUX FIELD redis-bits = '64'redis-bits是RDB文件中的一個輔助字段,指示Redis的位數為64位。

[offset 53] AUX FIELD ctime = '1691495331'ctime是RDB文件中的一個輔助字段,指示創建RDB文件的時間(Unix時間戳)。

[offset 68] AUX FIELD used-mem = '754984'used-mem是RDB文件中的一個輔助字段,指示在創建RDB文件時Redis使用的內存量。

[offset 70] Selecting DB ID 0:選擇了數據庫ID為0的數據庫。

[offset 98] Checksum OK:RDB文件的校驗和是正確的,沒有發現數據損壞。

[offset 98] \o/ RDB looks OK! \o/:整個RDB文件的檢查沒有發現錯誤,RDB文件看起來是完好的。

[info] 2 keys read:讀取了2個鍵值對。

[info] 0 expires:沒有過期的鍵值對。

[info] 0 already expired:沒有已經過期的鍵值對。

? ? ? ? 檢查AOF文件

redis-check-aof [--fix] <aof-file>

--fix選項可用于修復AOF文件中的錯誤。

<aof-file>是AOF文件的路徑和名稱。?

  1. 首先停止Redis服務器,以確保AOF文件不會被修改。

  2. 使用redis-check-aof命令來檢查AOF文件的正確性。命令的使用方式如下:

redis-check-aof /var/lib/redis/appendonly.aof

?注:

  1. 如果使用了--fix選項修復了AOF文件中的錯誤,建議再次運行redis-check-aof命令來驗證修復是否成功。

  2. 確認AOF文件已經正確修復后,可以啟動Redis服務器,并將修復后的AOF文件用作持久化文件。

五、redis登錄更改

開啟從服務需要復制配置文件,更改其監聽端口號,理論上可以開設無限個從服務器,更改其監聽端口即可(首先需要有一個特別特別好的電腦配置,不然不建議嘗試,系統會崩)

cp /etc/redis.conf /opt/redis_6380.conf

1、發現問題

? ? 更改完port后,systemctl啟動redis異常

2、解決辦法

? ? 使用redis-server /opt/redis_6380.conf?

redis-server /opt/redis_6380.conf 

?此時發現進程為前臺進程,影響操作

?? ? 若要redis后臺運行需修改配置文件,將daemonize的值改為yes

vim /etc/redis.conf

?

?再次輸入命令進行檢查

?檢查監聽端口進行查看

六、數據庫操作

(一)登錄數據庫

? ? 本地登錄

? ? ? ? 監聽回環地址(127.0.0.1)

redis-cli

?

?? ? ? ? 監聽本地網卡地址

? ? ? ? ? ? redis-cli -h IP -p 端口號

redis-cli -h 192.168.41.130 -p 6379

?此時因為更改過redis 的監聽地址,在使用時則會進行報錯。需添加IP地址和監聽端口。(監聽端口前文已經說過,再次不在過多追述)

? ? 遠程登錄

redis-cli -h 192.168.41.130 -p 6379 -n 0

(二)幫助信息

1、help 命令字

?

2、tab補齊

(三)庫操作

1、切換

select 1

?

(四)數據操作

? ? set? ? ? ? 設置鍵值對

? ? ? ? set key value

set name zn

?

?? ? keys

? ? ? ? keys *? ? ? ? ? ? 查看所有鍵的名稱

keys *?

?

?? ? ? ? keys 鍵名稱? ? ? ? ? ? 查看一個鍵是否存在

keys name

?

?? ? get

? ? ? ? 取出鍵值對

get name

?

?? ? ? ? get 鍵

? ? ? ? 鍵不存在則返回空

get aaa

?? ? del

? ? ? ? 刪除鍵值對? ? ? ? del key

del name

del aaa

?如果成功則返回結果為1,不成功則為0。這里我們沒有創建aaa的鍵,所以返回結果為0。

?? ? flushall? ? ? ? 清空所有數據庫中的數據

flushall

?? ? rename? ? ? ? 重命名鍵名稱

? ? ? ? 不論更名后的鍵是否存在都會覆蓋原有鍵,并將改名前的鍵的值賦予改名后的鍵

? ? ? ? rename oldkey newkey

rename zn zm

?? ? renamenx? ? ? ? 重命名鍵名稱

? ? ? ? 假如改名后鍵名稱存在則更改不成功

? ? ? ? renamenx oldkey newkey

renamenx zm zn

?? ? move

? ? ? ? 移動鍵值對到指定數據庫

? ? ? ? move key dbnumber

? ? ? ? 假如目標數據庫中存在同名鍵則移動失敗

move zn 0

?

?? ? ttl

? ? ? ? 查看鍵值對的生命周期

? ? ? ? ttl key

? ? ? ? ? ? -1? ? ? ? ? ? ? ? 永久

? ? ? ? ? ? -2? ? ? ? ? ? ? ? 已過期

?? ? expire

? ? ? ? 設置鍵值對的存儲周期

? ? ? ? expire key seconds

?

七、redis持久化

(一)RDB模式

? ? 默認持久化

? ? /var/lib/redis/dump.rdb? ? ? ? 數據庫啟動時會讀取

觸發條件redis進程退出宕機
redis程序崩潰
手動保存(觸發RDB)save

(二)AOF模式

? ? 默認關閉,需手動打開

vim /etc/redis.conf 

? ? ? ? 可以與RDB同時使用?

?重啟服務

systemctl restart redis

?去數據庫添加內容,而后返回查看

set aaa 123123

?

? ? ? ? 默認進程啟動時讀取? ? ? ? appendonly ?yes

?內容解析:

$6: 這是一個長度字段,表示后面的字符串的長度為6個字節。

SELECT: 這是一個Redis命令,表示切換到指定的數據庫。在這里,它表示切換到數據庫0。

$11: 這是一個長度字段,表示后面的字符串的長度為11個字節。

*3: 這是一個Redis命令,表示執行一個命令組,后面跟著3個命令。

$3: 這是一個長度字段,表示后面的字符串的長度為3個字節。

set: 這是一個Redis命令,表示設置一個鍵值對。

$3: 這是一個長度字段,表示后面的字符串的長度為3個字節。

aaa: 這是一個鍵名。

$6: 這是一個長度字段,表示后面的字符串的長度為6個字節。

123123: 這是一個值。

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

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

相關文章

2023國賽數學建模C題思路分析

文章目錄 0 賽題思路1 競賽信息2 競賽時間3 建模常見問題類型3.1 分類問題3.2 優化問題3.3 預測問題3.4 評價問題 4 建模資料 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 競賽信息 全國大學生數學建模…

中睿天下入選河南省網信系統2023年度網絡安全技術支撐單位

近日&#xff0c;河南省委網信辦發布了“河南省網信系統2023年度網絡安全技術支撐單位名單”&#xff0c;中睿天下憑借出色的網絡安全技術能力和優勢成功入選。 本次遴選由河南省委網信辦會同國家計算機網絡與信息安全管理中心河南分中心&#xff08;以下簡稱安全中心河南分中心…

持續輸出:自媒體持續輸出文字內容、視音頻創作(視頻課程、書籍章節)

以下是自媒體持續輸出文字內容、視音頻創作的最佳方法&#xff1a; 靈感來源&#xff1a;尋找靈感來源是自媒體創作的重要一環。可以從日常生活、網絡熱點、行業動態等方面尋找創作靈感。 確定主題&#xff1a;在確定主題的時候&#xff0c;需要根據讀者和觀眾的需求&#xff…

Zebec Protocol 將進軍尼泊爾市場,通過 Zebec Card 推動地區金融平等

流支付正在成為一種全新的支付形態&#xff0c;Zebec Protocol 作為流支付的主要推崇者&#xff0c;正在積極的推動該支付方案向更廣泛的應用場景拓展。目前&#xff0c;Zebec Protocol 成功的將流支付應用在薪酬支付領域&#xff0c;并通過收購 WageLink 將其納入旗下&#xf…

Pytest測試框架3

目錄&#xff1a; pytest結合數據驅動-yamlpytest結合數據驅動-excelpytest結合數據驅動-csvpytest結合數據驅動-jsonpytest測試用例生命周期管理&#xff08;一&#xff09;pytest測試用例生命周期管理&#xff08;二&#xff09;pytest測試用例生命周期管理&#xff08;三&a…

CMake 配置 Vulkan 出現鏈接失敗,找不到 vkEnumerateInstanceExtensionProperties 符號的錯誤的解決方法

使用 CMake 配置 glfw, glm 的時候&#xff0c;總是提示鏈接失敗&#xff0c;找不到 vkEnumerateInstanceExtensionProperties 符號 cmake_minimum_required(VERSION 3.4...3.27)if(${CMAKE_VERSION} VERSION_LESS 3.27)cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_…

UG NX二次開發(C#)-CAM-獲取刀具類型

文章目錄 1、前言2、UG NX中的刀具類型3、獲取刀具類型3.1 刀具類型幫助文檔1、前言 在UG NX的加工模塊,加工刀具是一個必要的因素,其包括了多種類型的類型,有銑刀、鉆刀、車刀、磨刀、成型刀等等,而且每種刀具所包含的信息也各不相同。想獲取刀具的信息,那就要知道刀具的…

2023最新水果編曲軟件FL Studio 21.1.0.3267音頻工作站電腦參考配置單及系統配置要求

音樂在人們心中的地位日益增高&#xff0c;近幾年音樂選秀的節目更是層出不窮&#xff0c;喜愛音樂&#xff0c;創作音樂的朋友們也是越來越多&#xff0c;音樂的類型有很多&#xff0c;好比古典&#xff0c;流行&#xff0c;搖滾等等。對新手友好程度基本上在首位&#xff0c;…

用Python畫多個圓圈代碼

編輯&#xff1a;2023-08-13 15:10 在Python中&#xff0c;我們可以使用turtle庫來繪制各種形狀&#xff0c;包括圓圈。這是一個相當基本的問題&#xff0c;但是對于新手程序員來說&#xff0c;它可能會很有用。在這篇文章中&#xff0c;我們將向你展示如何使用Python的turtle…

【報童模型】隨機優化問題二次規劃

面對需求的不確定性&#xff0c;報童模型是做庫存優化的常見模型。而標準報童模型假設價格是固定的&#xff0c;此時求解一個線性規劃問題&#xff0c;可以得到最優訂貨量&#xff0c;這種模型存在局限性。因為現實世界中價格與需求存在一定的關系&#xff0c;本文假設需求q是價…

LNMP環境介紹和搭建

一.LNMP簡介 1.含義 2.工作原理 二.部署LNMP環境 1.Nginx環境 &#xff08;1&#xff09;上傳nginx包&#xff0c;下載編譯安裝工具并解包到指定目錄&#xff08;tar 參數 tar包 - C 目錄路徑&#xff09; &#xff08;2&#xff09; 開始編譯安裝&#xff0c;每次編譯后…

nbcio-boot升級到3.1后出現online表單新增報錯

nbcio-boot升級springboot、mybatis-plus和JSQLParser后出現新增online表單的時候報錯&#xff0c;如下&#xff1a; 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…

【JVM】JVM垃圾收集器

文章目錄 什么是JVM垃圾收集器四種垃圾收集器&#xff08;按類型分&#xff09;1.串行垃圾收集器(效率低&#xff09;2.并行垃圾收集器(JDK8默認使用此垃圾回收器&#xff09;3.CMS&#xff08;并發&#xff09;垃圾收集器(只針對老年代垃圾回收的&#xff09;4.G1垃圾回收器(在…

設計模式之七:適配器模式與外觀模式

面向對象適配器將一個接口轉換成另一個接口&#xff0c;以符合客戶的期望。 // 用火雞來冒充一下鴨子class Duck { public:virtual void quack() 0;virtual void fly() 0; };class Turkey { public:virtual void gobble() 0;virtual void fly() 0; };class TurkeyAdapter :…

利用爬蟲爬取圖片并保存

1 問題 在工作中&#xff0c;有時會遇到需要相當多的圖片資源&#xff0c;可是如何才能在短時間內獲得大量的圖片資源呢&#xff1f; 2 方法 我們知道&#xff0c;網頁中每一張圖片都是一個連接&#xff0c;所以我們提出利用爬蟲爬取網頁圖片并下載保存下來。 首先通過網絡搜索…

Linux 1.2.13 -- IP分片重組源碼分析

Linux 1.2.13 -- IP分片重組源碼分析 引言為什么需要分片傳輸層是否存在分段操作IP分片重組源碼分析ip_createip_findip_frag_createip_doneip_glueip_freeip_expireip_defragip_rcv 總結 本文源碼解析參考: 深入理解TCP/IP協議的實現之ip分片重組 – 基于linux1.2.13 計網理論…

樹莓派RP2040 用Arduino IDE安裝和編譯

目錄 1 Arduino IDE 1.1 IDE下載 1.2 安裝 arduino mbed os rp2040 boards 2 編程-燒錄固件 2.1 打開點燈示例程序 2.2 選擇Raspberry Pi Pico開發板 2.3 編譯程序 2.4 燒錄程序 2.4.1 Raspberry Pi Pico開發板首次燒錄提示失敗 2.4.2 解決首次下載失敗問題 2.4.2.1…

curl 快速入門使用教程

你好&#xff0c;我是悅創。 curl 是一個強大的命令行工具&#xff0c;用于獲取或發送數據&#xff0c;包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 或 FILE 協議等。在本教程中&#xff0c;我們將主要介紹如何使用 curl 進行 HTTP/HTTPS 請求。 1. 安…

Java基礎五之for循環小練習

加油,新時代大工人&#xff01; 一、Java基礎之算術運算符 二、Java基礎之類型轉換 三、Java基礎之【字符串操作以及自增自減操作】 四、Java基礎之賦值運算符和關系運算符 package base;import java.io.InputStream; import java.util.Scanner;/*** author wh* date 2023年08…

無涯教程-Perl - recv函數

描述 This function receives a message on SOCKET attempting to read LENGTH bytes, placing the data read into variable SCALAR.The FLAGS argument takes the same values as the recvfrom( ) system function, on which the function is based. When communicating wit…