day01-Redis入門

来源:https://www.cnblogs.com/liyuelian/archive/2023/04/15/17322320.html
-Advertisement-
Play Games

Redis入門 1.初始Redis 1.1認識NoSQL | | SQL(關係型資料庫) | NoSQL(非關係型資料庫) | | | | | | 數據結構 | 結構化(Structured) | 非結構化 | | 數據關聯 | 關聯的(Relational) | 無關聯的 | | 查詢方式 | S ...


Redis入門

1.初始Redis

1.1認識NoSQL

SQL(關係型資料庫) NoSQL(非關係型資料庫)
數據結構 結構化(Structured) 非結構化
數據關聯 關聯的(Relational) 無關聯的
查詢方式 SQL查詢 非SQL
事務特性 ACID BASE
存儲方式 磁碟 記憶體
擴展性 垂直 水平
使用場景 1.數據結構固定 2.相關業務對數據安全性、一致性要求較高 1.數據結構不固定 2.對一致性、安全性要求不高 3.對性能要求高

其中,非關係型資料庫有很多種,比如:

  1. 鍵值類型(Redis)
  2. 文檔類型(MongoDB)
  3. 列類型(HBase)
  4. Graph類型(Neo4j)

1.2認識Redis

Redis誕生於2009年,全稱為 Remote Dictionary Server(遠程詞典伺服器),是一個基於記憶體的鍵值型NoSQL資料庫。

Redis特征:

  1. 鍵值(key-value)型,value支持多種不同的數據結構,功能豐富
  2. 單線程,每個命令具備原子性
  3. 低延遲,速度快(基於記憶體、IO多路復用、良好的編碼)
  4. 支持數據持久化
  5. 支持主從集群、分片集群(主從集群:從節點可以去備份主節點的數據;分片集群:數據的拆分,一份數據可以拆成多分,分別存儲在不同的節點上)
  6. 支持多語言客戶端

2.安裝Redis

2.1單機安裝redis

大多數企業都是基於Linux伺服器來部署項目,而且Redis官方也沒有提供Windows版本的安裝包,因此我們這裡基於Linux系統來安裝Redis。

先安裝linux系統:這裡是在wsl上安裝redis,wsl安裝教程更換國內下載源

ubuntu安裝redis教程:Ubuntu安裝redis詳細教程

(1) 安裝 Redis 伺服器

sudo apt-get install -y redis-server

(2)在 /etc/redis/redis.conf 中修改redis密碼,修改配置文件里的 requirepass,把註釋關掉,然後後面改為你想設置的密碼

sudo vim /etc/redis/redis.conf	#註意使用sudo
image-20230415203237230

(3) 啟動 Redis 伺服器:使用命令redis-server 啟動redis伺服器

image-20230415202336846

(4) 驗證 Redis 是否正常工作:

新建一個視窗當做redis客戶端,用於通信。在客戶端輸入命令:redis-cli,這會打開一個redis提示符:127.0.0.1:6379>。其中,127.0.0.1 是機器的 IP 地址,6379 是 Redis 伺服器運行的埠。鍵入PING 命令,若返回 PONG 則表示 Redis 已成功安裝在你的系統上。

image-20230415202814771

註意事項:

redis-cli 是redis提供的命令行客戶端

redis-server 是redis的服務端啟動腳本

redis-sentinel 是redis的哨兵啟動腳本

2.2redis服務-後臺啟動

如上所示,我們直接輸入命令redis-server,redis伺服器將會在前臺啟動(預設啟動方式),這樣會阻塞整個會話視窗,視窗按下ctrl+c則redis服務停止,不推薦使用。

如果要讓redis以後臺方式啟動,則必須修改redis的配置文件。

(1)先將該文件備份:

li@LAPTOP-32SOPQVL:/etc/redis$ sudo cp redis.conf redis.cinf.bck
li@LAPTOP-32SOPQVL:/etc/redis$ ls
redis.cinf.bck  redis.conf

(2)再修改配置文件, sudo vim /etc/redis/redis.conf,修改的部分配置如下

# 允許訪問的地址,預設是127.0.0.1,會導致只能在本地訪問。
# 修改為0.0.0.0則可以在任意IP訪問,註意:生產環境不要設置為0.0.0.0 !!
bind 0.0.0.0
# 守護進程,修改為yes後即可後臺運行
daemonize yes 
# 密碼,設置後訪問Redis必須輸入密碼
requirepass 123456

(3)修改之後,輸入命令 sudo redis-server /etc/redis/redis.conf,就可以在後臺運行redis服務端了

li@LAPTOP-32SOPQVL:/$ sudo redis-server /etc/redis/redis.conf
li@LAPTOP-32SOPQVL:/$ ps -ef | grep redis #查看埠
root     22196     1  0 21:09 ?        00:00:00 redis-server 0.0.0.0:6379
li       22201  4351  0 21:09 tty2     00:00:00 grep --color=auto redis

(4)後臺啟動服務端後,因為修改了密碼,客戶端訪問時需要輸入密碼

Redis報錯 : (error) NOAUTH Authentication required (cnblogs.com)

li@LAPTOP-32SOPQVL:~$ redis-cli
127.0.0.1:6379> auth 123456 # 輸入密碼
OK
127.0.0.1:6379> ping
PONG
  • Redis的其它常見配置:
# 監聽的埠
port 6379
# 工作目錄,預設是當前目錄 . ,也就是運行redis-server時的命令,日誌、持久化等文件會保存在這個目錄
dir .
# 資料庫數量,設置為1,代表只使用1個庫,預設有16個庫,編號0~15
databases 1
# 設置redis能夠使用的最大記憶體
maxmemory 512mb
# 日誌文件,預設為空,不記錄日誌,可以指定日誌文件名
logfile "redis.log"

啟動Redis:

# 進入redis安裝目錄 
cd /usr/local/src/redis-6.2.6
# 啟動,需要管理員許可權
redis-server /etc/redis/redis.conf

停止服務:

# 利用redis-cli來執行 shutdown 命令,即可停止 Redis 服務,
# 因為之前配置了密碼,因此需要通過 -u 來指定密碼
redis-cli -u 123456 shutdown

3.Redis客戶端

安裝完成Redis,我們就可以操作Redis,實現數據的CRUD了。這裡需要用到redis的客戶端,包括:

  • 命令行客戶端
  • 圖形化桌面客戶端
  • 編程客戶端

3.1命令行客戶端

Redis安裝完成後就自帶了命令行客戶端,在上面已經使用過,打開新視窗,使用方式如下:

redis-cli [options] [commonds]

常見的options有:

  • -h 127.0.0.1:指定要連接的redis節點的IP地址,預設是127.0.0.1
  • -p 6379:指定要連接的redis節點的埠,預設是6379
  • -a 123456:指定redis的訪問密碼

commonds是Redis的操作命令,例如:

  • ping:與redis服務端做心跳測試,服務端正常會返回pong

不指定commond時,會直接進入redis-cli的交互控制台:

image-20230415220315186

3.2圖形化桌面客戶端

RedisInsight/RedisDesktopManager: Cross-platform Developer GUI for Redis (github.com)

下載後直接運行.exe文件,一路點擊下一步,選擇對應的安裝目錄,完成安裝。


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

-Advertisement-
Play Games
更多相關文章
  • 安裝 NuGet 包:在 Visual Studio 中打開項目,右鍵單擊項目名稱,選擇“管理 NuGet 包”,搜索“Quartz”並安裝。 創建作業:創建一個實現了 IJob 介面的類,該介面包含一個 Execute 方法,該方法將在作業運行時調用。例如: public class MyJob ...
  • 朋友做網站需要根據城市展示天氣預報,找了一圈沒有找到靠譜的介面,今天在中央氣象臺的官網查詢某個城市找到了介面,先用postman試了一下居然可以使用,可以查詢某個城市7天的天氣預報等信息。但是查詢編碼是氣象臺自己的編碼,在網上搜索了一下居然有這個編碼。本文使用HttpClient方法查詢這個介面。 ...
  • #總覽需求 1. 簡述靜態網頁和動態網頁的區別。 2. 簡述 Webl.0 和 Web2.0 的區別。 3. 安裝tomcat8,配置服務啟動腳本,部署jpress應用。 1、簡述靜態網頁和動態網頁的區別 靜態網頁: 請求響應信息,發給客戶端進行處理,由瀏覽器進行解析,顯示的頁面,靜態網頁包含文本、 ...
  • title: msp430點燈實驗 date: 2023-04-15 15:31:25 description: 基於msp430f5529點燈實驗 一、實驗內容 使用開發板:msp430f5529 使用的LED燈:為開發板上自帶的User LEDs(LED1、LED2) 環境:CCS (Versi ...
  • 一、 yum mysql5.7以下 mysql5.7以上 Centos8 可以,但是需要重新配置文件 可以,但是需要重新配置文件 可以,但是需要重新配置文件 Centos7 可以直接yum,但是是安裝mariadb-server。如果是mysql-server需要配置文件 直接yum後啟動就好 yu ...
  • 本文章來自我的微信個人技術公眾號 網路技術修煉,公眾號中總結普及網路基礎知識,包括基礎原理、網路方案、開發經驗和問題定位案例等,歡迎關註。 Linux網路開發者面臨的問題往往比較複雜,因此需要使用一些工具和命令來進行定位和解決。在本篇博客中,我將總結一些常用的Linux網路開發者工具和命令,包括網路 ...
  • 哈嘍大家好,我是鹹魚。今天跟大家分享一個關於正則表達式的案例,希望能夠對你有所幫助 案例現象 前幾天有一個小伙伴在群里求助,說他這個 shell 腳本有問題,讓大家幫忙看看 可以看到,這個腳本首先將目標文本文件的名字當作該腳本的第一個參數($1)傳遞進去,然後查看這個文本文件的內容(cat $1), ...
  • 簡介:本文主要介紹ubuntu20.04容器中搭建xfce遠程桌面、C++、Go環境、容器內docker操作配置、zsh配置 一、創建容器 1、創建容器 docker pull ubuntu:20.04docker run -itd --privileged --name=my-desktop--u ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...