国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!

這篇具有很好參考價(jià)值的文章主要介紹了Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

數(shù)據(jù)庫(kù)系列文章:

關(guān)系型數(shù)據(jù)庫(kù):

  • MySQL —— 基礎(chǔ)語(yǔ)法大全
  • MySQL —— 進(jìn)階


非關(guān)系型數(shù)據(jù)庫(kù):

  • Redis 的安裝與配置
  • Redis 基本命令(上)
  • Redis 基本命令(下)

一、Redis 概述

1.1 Redis 簡(jiǎn)介

Redis Remote Dictionary Server ,遠(yuǎn)程字典服務(wù), 由意大利人 Salvatore Sanfilippo (又名 Antirez 開(kāi)發(fā), 是一個(gè)使用 ANSI C 語(yǔ)言 編寫(xiě)、支持網(wǎng)絡(luò)、可基于 內(nèi)存 亦可 持久化日志型、 NoSQL 開(kāi)源內(nèi)存數(shù)據(jù)庫(kù) ,其提供多種語(yǔ)言的 API 。從 2010 年 3 月 15 日起, Redis 的開(kāi)發(fā)工作由 VMware 主持。從2013 年 5 月開(kāi)始, Redis 的開(kāi)發(fā)由 Pivotal 贊助。

2008 年時(shí) Salvatore Sanfilippo 自己開(kāi)發(fā)一個(gè)叫 LLOOGG 的網(wǎng)站。

Redis 之所以稱(chēng)之為 字典服務(wù),是因?yàn)?Redis 是一個(gè) key-value 存儲(chǔ)系統(tǒng) 。支持存儲(chǔ)的 value 類(lèi)型 有很多,包括 String(字符串) 、 List(鏈表) 、 Set(集合) 、 Zset(sorted set 有序集合) 和 Hash(哈希類(lèi)型) 等 。

Redis 的國(guó)際知名用戶(hù)有, Twitter 、 GitHub 、 Facebook 等,國(guó)內(nèi)知名用戶(hù)有,阿里巴巴、騰訊、百度、搜狐、優(yōu)酷、美團(tuán)、小米等。熟練使用和運(yùn)維 Redis 已經(jīng)成為開(kāi)發(fā)運(yùn)維人員的一個(gè)必備技能。

?? NoSQL

  • NoSQL(“non relational”, “Not Only SQL”),泛指 非關(guān)系型的數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng) web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)在處理 web2.0 網(wǎng)站,特別是 超大規(guī)模高并發(fā)SNS (社交) 類(lèi)型的 web2. 0 純動(dòng)態(tài)網(wǎng)站 已經(jīng)顯得力不從心,出現(xiàn)了很多難以克服的問(wèn)題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。 NoSQL 數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決 大規(guī)模數(shù)據(jù)集合 多重?cái)?shù)據(jù)種類(lèi) 帶來(lái)的挑戰(zhàn),特別是大數(shù)據(jù)應(yīng)用難題。

(1) 鍵值存儲(chǔ)數(shù)據(jù)庫(kù)

  • 就像 Map 一樣的 key-value 對(duì)。典型代表就是 Redis 。

(2) 列存儲(chǔ)數(shù)據(jù)庫(kù)

  • 關(guān)系型數(shù)據(jù)庫(kù) 是典型的 行存儲(chǔ)數(shù)據(jù)庫(kù)
    • 存在的問(wèn)題是,按行存儲(chǔ)的數(shù)據(jù)在 物理層面 占用的是 連續(xù)存儲(chǔ)空間不適合海量數(shù)據(jù)存儲(chǔ)。
  • 而按 列存儲(chǔ) 則可實(shí)現(xiàn) 分布式存儲(chǔ),適合海量存儲(chǔ)。典型代表是 HBase

(3) 文檔型數(shù)據(jù)庫(kù)

  • 其是 NoSQL關(guān)系型數(shù)據(jù) 的結(jié)合,最像關(guān)系型數(shù)據(jù)庫(kù)NoSQL。典型代表是MongoDB
    • 該類(lèi)型的數(shù)據(jù)模型是版本化的文檔,半結(jié)構(gòu)化的文檔以特定的格式存儲(chǔ),比如 JSON。

(4) 圖形(Graph)數(shù)據(jù)庫(kù)

  • 用于存放一個(gè) 節(jié)點(diǎn)關(guān)系 的數(shù)據(jù)庫(kù),例如描述不同人間的關(guān)系。典型代表是Neo4J

1.2 Redis 的用途

Redis 在生產(chǎn)中使用最多的場(chǎng)景就是 做數(shù)據(jù)緩存 。即客戶(hù)端從 DBMS 中查詢(xún)出的數(shù)據(jù)首先寫(xiě)入到 Redis 中,后續(xù)無(wú)論哪個(gè)客戶(hù)端再需要訪(fǎng)問(wèn)該數(shù)據(jù),直接讀取 Redis 中的即可,不僅減小了 RT ,而且降低了 DBMS 的壓力。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

根據(jù) Redis 緩存的數(shù)據(jù)與 DBMS 中數(shù)據(jù)的同步性劃分,緩存一般可劃分為兩類(lèi): 實(shí)時(shí)同步緩存階段性同步緩存 。

  • 實(shí)時(shí)同步緩存 是指,DBMS 中 數(shù)據(jù)更新 后, Redis 緩存中的存放的相關(guān)數(shù)據(jù)會(huì)被 立即清除,以促使再有對(duì)該數(shù)據(jù)的訪(fǎng)問(wèn)請(qǐng)求到來(lái)時(shí),必須先從 DBMS 中查詢(xún)獲取到最新數(shù)據(jù),然后再寫(xiě)入到 Redis 。
  • 階段性同步緩存 是指,Redis 緩存中的數(shù)據(jù)允許在一段時(shí)間 (生存時(shí)長(zhǎng)) 內(nèi)與 DBMS 中的數(shù)據(jù)不完全一致。而這個(gè)時(shí)間段就是這個(gè)緩存數(shù)據(jù)的 過(guò)期時(shí)間。

1.3 Redis 特性

能夠做緩存的技術(shù)中間件很多,例如,MyBatis 自帶的二級(jí)緩存、 Memched 等。只所以在生產(chǎn)中做緩存的產(chǎn)品幾乎無(wú)一例外的會(huì)選擇 Redis ,是因?yàn)樗泻芏嗥渌a(chǎn)品所不具備的特性。

  • 性能極高: Redis 讀的速度可以達(dá)到 11w次/s ,寫(xiě)的速度可以達(dá)到 8w次/s 。只所以具有這么高的性能,因?yàn)橐韵聨c(diǎn)原因:
      1. Redis 的所有操作都是在內(nèi)存中發(fā)生的。
      1. Redis 是用 C 語(yǔ)言 開(kāi)發(fā)的。
      1. Redis 源碼非常精細(xì)集性能與優(yōu)雅于一身)。
  • 簡(jiǎn)單穩(wěn)定: Redis 源碼很少。早期版本只有 2w 行左右。從 3.0 版本開(kāi)始,增加了集群功能,代碼變?yōu)榱?5w 行左右。
  • 持久化: Redis 內(nèi)存中的數(shù)據(jù)可以進(jìn)行持久化,其有兩種方式: RDBAOF
  • 高可用集群: Redis 提供了高可用的主從集群功能,可以確保系統(tǒng)的安全性。
  • 豐富的數(shù)據(jù)類(lèi)型: Redis 是一個(gè) key-value 存儲(chǔ)系統(tǒng) 。支持存儲(chǔ)的 value 類(lèi)型很多,包括 String(字符串) 、 List(鏈表) 、 Set(集合) 、 Zset(sorted set 有序集合) 和 Hash (哈希類(lèi)型)等,還有 BitMap 、 HyperLogLog 、 Geospatial 類(lèi)型。
    • BitMap :一般用于 大數(shù)據(jù)量二值性統(tǒng)計(jì) 。
    • HyperLogLog :其是 Hyperlog Log ,用于對(duì)數(shù)據(jù)量超級(jí)龐大日志去重統(tǒng)計(jì)。
    • Geospatial :地理空間,其主要用于地理位置相關(guān)的計(jì)算。
  • 強(qiáng)大的功能: Redis 提供了數(shù)據(jù)過(guò)期功能、發(fā)布/訂閱功能、簡(jiǎn)單事務(wù)功能,還支持 Lua 腳本擴(kuò)展功能。
  • 客戶(hù)端語(yǔ)言廣泛: Redis 提供了簡(jiǎn)單的 TCP 通信協(xié)議,編程語(yǔ)言可以方便地的接入 Redis 。所以,有很多的開(kāi)源社區(qū)、大公司等開(kāi)發(fā)出了很多語(yǔ)言的 Redis 客戶(hù)端。
  • 支持 ACL 權(quán)限控制: 之前的權(quán)限控制非常笨拙。從 Redis6 開(kāi)始引入了 ACL 模塊,可以為不同用戶(hù)定制不同的用戶(hù)權(quán)限。

ACL,Access Control List ,訪(fǎng)問(wèn)控制列表,是一種 細(xì)粒度權(quán)限管理策略,可以針對(duì) 任意用戶(hù)與組 進(jìn)行權(quán)限控制

  • 目前大多數(shù) Unix 系統(tǒng)與 Linux 2.6 版本已經(jīng)支持 ACL 了。
  • Zookeeper 早已支持 ACL 了。
  • Unix與 Linux 系統(tǒng)默認(rèn)使用是 UGO (User 、Group 、Other) 權(quán)限控制策略 ,其是一種 粗粒度權(quán)限管理策略。
  • 支持多線(xiàn)程 IO 模型: Redis 之前版本采用的是單線(xiàn)程模型,從 6.0 版本開(kāi)始 支持多線(xiàn)程模型。

1.4 Redis 的IO模型

Redis 客戶(hù)端提交的各種請(qǐng)求是如何最終被 Redis 處理的?

  • Redis 處理客戶(hù)端請(qǐng)求所采用的 處理架構(gòu),稱(chēng)為 Redis 的 IO 模型
  • 不同版本的 Redis 采用的 IO 模型 是不同的。

?? 1)、單線(xiàn)程模型

  • 對(duì)于 Redis 3.0 及其以前版本, Redis 的 IO 模型采用的是 純粹的單線(xiàn)程模型 。即所有客戶(hù)端的請(qǐng)求全部由一個(gè)線(xiàn)程處理。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • Redis 的單線(xiàn)程模型采用了 多路復(fù)用技術(shù) 。

對(duì)于多路復(fù)用器多路復(fù)用技術(shù) 常見(jiàn)的有三種: select 模型(數(shù)組)、 poll 模型(鏈表)、 epoll 模型。

  • select 模型底層是數(shù)組,性能較低,不常見(jiàn)。
  • poll 模型的選擇算法:采用的是輪詢(xún)算法。該模型對(duì)客戶(hù)端的就緒處理是 有延遲的 。
  • epoll 模型的選擇算法:采用的是回調(diào)方式。 根據(jù)就緒事件發(fā)生后的處理方式的不同,又可分為 LT 模型與 ET 模型。
  • 每個(gè)客戶(hù)端 若 要向 Redis 提交請(qǐng)求,都需要與 Redis 建立一個(gè) socket 連接,并向 事件分發(fā)器 注冊(cè)一個(gè)事件。一旦該事件發(fā)生就表明該連接已經(jīng)就緒。而一旦連接就緒,事件分發(fā)器就會(huì)感知到,然后獲取客戶(hù)端通過(guò)該連接發(fā)送的請(qǐng)求,并將由該事件分發(fā)器所綁定的這個(gè) 唯一的線(xiàn)程 來(lái)處理。如果該線(xiàn)程還在處理多個(gè)任務(wù),則將該任務(wù)寫(xiě)入到任務(wù)隊(duì)列等待線(xiàn)程處理。
  • 只所以稱(chēng)為事件分發(fā)器,是因?yàn)樗鼤?huì)根據(jù)不同的就緒事件,將任務(wù)交由不同的事件處理器去處理。

?? 2)、混合線(xiàn)程模型

  • 從Redis 4.0 版本開(kāi)始, Redis 中就開(kāi)始加入了 多線(xiàn)程 元素 。處理客戶(hù)端請(qǐng)求的仍是單線(xiàn)程模型,但對(duì)于一些 比較耗時(shí)但又不影響對(duì)客戶(hù)端的響應(yīng)的操作,就由后臺(tái)其它線(xiàn)程來(lái)處理。
    • 例如,持久化、 對(duì) AOFrewrite對(duì)失效連接的清理等。

?? 3)、多線(xiàn)程模型

  • Redis 6.0版本,才是真正意義上的多線(xiàn)程模型。因?yàn)槠鋵?duì)于客戶(hù)端請(qǐng)求的處理采用的是多線(xiàn)程模型。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 多線(xiàn)程 IO 模型中的 “多線(xiàn)程” 僅用于接受、解析客戶(hù)端的請(qǐng)求,然后將解析出的請(qǐng)求寫(xiě)入到任務(wù)隊(duì)列。而對(duì)具體任務(wù)(命令)的處理,仍是由主線(xiàn)程處理
  • 這樣做 使得用戶(hù) 無(wú)需考慮 線(xiàn)程安全問(wèn)題,無(wú)需考慮 事務(wù)控制, 無(wú)需考慮像 LPUSH/LPOP命令的執(zhí)行順序問(wèn)題 。

?? 4)、優(yōu)缺點(diǎn)總結(jié) (面試)

(1) 單線(xiàn)程模型

  • 優(yōu)點(diǎn):可維護(hù)性高,性能高。不存在并發(fā)讀寫(xiě) 情況,所以也就 不存在執(zhí)行順序的不確定性,不存在線(xiàn)程切換開(kāi)銷(xiāo),不存在死鎖問(wèn)題,不存在 為了數(shù)據(jù)安全而進(jìn)行的 加鎖/解鎖開(kāi)銷(xiāo)。
  • 缺點(diǎn):性能會(huì)受到影響,且由于單線(xiàn)程 只能使用一個(gè)處理器(現(xiàn)在都是多處理器),所以會(huì)形成 處理器浪費(fèi)。

內(nèi)存的響應(yīng)時(shí)長(zhǎng)(RT): 100 n s 100ns 100ns
Redis 每秒處理的讀寫(xiě)請(qǐng)求數(shù)量應(yīng)該可以達(dá)到 1 s / 100 n s = 1 0 9 n s / 100 n s = 1 0 7 = 1 k w 1s/100ns = 10^9ns/100ns = 10^7 = 1kw 1s/100ns=109ns/100ns=107=1kw
實(shí)際情況是,Redis 每秒可以處理 8 w ? 11 w 8w - 11w 8w?11w 的讀寫(xiě)請(qǐng)求

(2) 多線(xiàn)程模型

  • 優(yōu)點(diǎn):其結(jié)合了 多線(xiàn)程單線(xiàn)程 的優(yōu)點(diǎn),避開(kāi)了它們的所有不足。
  • 缺點(diǎn):該模型沒(méi)有顯示不足。如果非要找其不足的話(huà)就是,其并非是一個(gè)真正意義上的 ”多線(xiàn)程”,因?yàn)?真正處理任務(wù)的線(xiàn)程 仍是單線(xiàn)程。所以,其對(duì)性能也是有些影響的

二、Redis 的安裝與配置

這里是要將 Redis 安裝到 Linux 系統(tǒng)中。

我的是 CentOS7,已經(jīng)關(guān)閉防火墻,安裝好了jdk,以及常用的命令工具。

2.1 Redis 的安裝

?? (2.1.1)、安裝前的準(zhǔn)備工作

1)、安裝 gcc

  • 由于 Redis 是由 C/C++ 語(yǔ)言編寫(xiě)的, 而從官網(wǎng)下載的 Redis 安裝包是需要 編譯后 才可安裝的, 所以對(duì)其進(jìn)行編譯就必須要使用相關(guān)編譯器。對(duì)于 C/C++ 語(yǔ)言的編譯器,使用最多的是 gccgcc-c++,而這兩款編譯器在 CentOS 7 中是沒(méi)有安裝的,所以首先要安裝這兩款編譯器。
  • GCC, GNU Compiler Collection, GNU 編譯器集合。
yum -y install gcc gcc-c++ 

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2)、下載 Redis

  • Redis 的官網(wǎng)為: http://redis.io

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)
Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

3)、上傳到 Linux

  • 將下載好的壓縮包上傳到 Linux 的 /opt/tools 目錄中 。
    Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.1.2)、安裝 Redis

1)、解壓 Redis

  • 將 Redis 解壓到 /opt/apps 目錄中。
tar -zxvf redis-7.2.1.tar.gz -C /opt/apps/

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 進(jìn)入到 /opt/apps 目錄中 再將 Redis 解壓包目錄更名為 redis (不更名也無(wú)所謂,改名是為了簡(jiǎn)化目錄名)。
mv redis-7.2.1/ redis

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2)、編譯

  • 編譯過(guò)程是根據(jù) Makefile 文件進(jìn)行的,而 Redis 解壓包中已經(jīng)存在該文件了。所以可以直接進(jìn)行編譯 了 。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 在解壓目錄下,執(zhí)行編譯命令 make 進(jìn)行編譯。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

如果沒(méi)有準(zhǔn)備好C語(yǔ)言編譯環(huán)境,make 會(huì)報(bào)錯(cuò) — Jemalloc/jemalloc.h:沒(méi)有那個(gè)文件
解決辦法:

  • 首先看:gcc 是否安裝成功,成功后
  • 運(yùn)行 make distclean, 將編譯文件清除掉,然后再在 redis 目錄下再次執(zhí)行 make 命令(只是編譯好)
  • 當(dāng)看到如下提示時(shí),表示編譯成功。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

3)、安裝

  • 在 Linux 中對(duì)于編譯過(guò)的安裝包執(zhí)行 make install 進(jìn)行安裝。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 可以看到,共安裝了三個(gè)組件: redis 服務(wù)器、客戶(hù)端 與 一個(gè)性能測(cè)試工具 benchmark

4)、查看 bin 目錄

  • 安裝完成后,打開(kāi) /usr/local/bin 目錄,可以看到出現(xiàn)了很多的文件。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 通過(guò) echo $PATH 可以看到,/usr/local/bin 目錄是存在于該 系統(tǒng)變量 中的, 這樣這些命令就可以在任意目錄中執(zhí)行了。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.1.3)、Redis 啟動(dòng)與停止

1)、前臺(tái)啟動(dòng)

  • 在任意目錄執(zhí)行 redis-server 命令即可啟動(dòng) Redis 。 這種啟動(dòng)方式會(huì) 占用當(dāng)前命令行窗口。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 再開(kāi)啟 一個(gè)會(huì)話(huà)窗口,可以查看到當(dāng)前的 Redis 進(jìn)程,默認(rèn)端口號(hào)為 6379。
ps aux | grep redis

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 通過(guò) Ctrl + C 命令可以停止 Redis 。

2)、命令式后臺(tái)啟動(dòng)

  • 使用 nohup 命令,最后再添加一個(gè) & 符,可以使要啟動(dòng)的程序在后臺(tái)以守護(hù)進(jìn)程方式運(yùn)行。
 nohup redis-server &
  • 這樣的好處是,進(jìn)程啟動(dòng)后不會(huì)占用一個(gè)會(huì)話(huà)窗口,且其還會(huì)在當(dāng)前目錄,即運(yùn)行啟動(dòng)命令的當(dāng)前目錄中創(chuàng)建一個(gè) nohup.out 文件用于記錄 Redis 的操作日志。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

3)、Redis 的停止

  • 通過(guò) redis-cli shutdown 命令可以停止 Redis 。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

4)、配置式后臺(tái)啟動(dòng)

  • 使用 nohup 命令可以使 Redis 后臺(tái)啟動(dòng),但每次都要鍵入 nohup& 符,比較麻煩。
  • 可以通過(guò)修改 Linux 中 Redis 的核心配置文件 redis.conf 達(dá)到后臺(tái)啟動(dòng)的目的。
  • redis.conf 文件在 Redis 的安裝目錄根下。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • daemonize 屬性值由 no 改為 yes ,使 Redis 進(jìn)程以守護(hù)進(jìn)程方式運(yùn)行。
vim redis.conf
:set nu 	#顯示行號(hào)
/daemonize 	#搜索daemonize

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

修改后再啟動(dòng) Redis ,就無(wú)需再鍵入 nohup 與 符 &了,但必須要指定啟動(dòng)所使用的 Redis配置文件。 這是為什么呢?

  • 使用 nohup redis-server & 命令啟動(dòng) Redis 時(shí),啟動(dòng)項(xiàng)中已經(jīng)設(shè)置好了 Redis 各個(gè)參數(shù)的默認(rèn)值, Redis 會(huì)按照這些設(shè)置的參數(shù)進(jìn)行啟動(dòng)。但這些參數(shù)是可以在配置文件中進(jìn)行修改的,修改后,需要在啟動(dòng)命令中指定要加載的配置文件,這樣,配置文件中的參數(shù)值將覆蓋原默認(rèn)值。
  • Redis 已經(jīng)給我們提供好了配置文件模板,是 Redis 安裝目錄的根目錄下的 redis.conf 文件。由于剛剛對(duì) redis.conf 配置文件做了修改,所以在開(kāi)啟 Redis 時(shí)需要顯示指出要加載的配置文件。配置文件應(yīng)緊跟在 redis-server 的后面。
redis-server /opt/apps/redis/redis.conf

ps aux | grep redis

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2.2 連接前的配置

  • Redis 是一個(gè)內(nèi)存數(shù)據(jù)庫(kù)服務(wù)器,就像 MySQL 一樣,對(duì)其操作也需要通過(guò) 客戶(hù)端 進(jìn)行。
  • 若要使 遠(yuǎn)程主機(jī)上的客戶(hù)端 能夠連接并訪(fǎng)問(wèn)到 服務(wù)端的 Redis ,則服務(wù)端首先要做如下配置。

?? (2.2.1)、綁定客戶(hù)端 IP

  • Redis 可以通過(guò)修改配置文件來(lái)限定可以訪(fǎng)問(wèn)自己的 客戶(hù)端 IP 。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 以上設(shè)置后,只允許當(dāng)前主機(jī)訪(fǎng)問(wèn)當(dāng)前的 Redis ,其它主機(jī)均不可訪(fǎng)問(wèn)。 所以,如果不想限定訪(fǎng)問(wèn)的客戶(hù)端,只需要將該行 注釋掉 即可。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.2.2)、關(guān)閉保護(hù)模式

  • 默認(rèn)保護(hù)模式是開(kāi)啟的。 其只允許本機(jī)的客戶(hù)端訪(fǎng)問(wèn), 即只允許自己訪(fǎng)問(wèn)自己。但生產(chǎn)中應(yīng)該關(guān)閉, 以確保其它客戶(hù)端可以連接 Redis 。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

#命令模式下輸入
:noh 	#去掉搜索出來(lái)的黃標(biāo)

?? (2.2.3)、設(shè)置訪(fǎng)問(wèn)密碼

  • 為 Redis 設(shè)置訪(fǎng)問(wèn)密碼,可以對(duì)要讀 寫(xiě) Redis 的用戶(hù)進(jìn)行身份驗(yàn)證。沒(méi)有密碼的用戶(hù)可以登錄 Redis ,但無(wú)法訪(fǎng)問(wèn)。

1)、密碼設(shè)置

  • 訪(fǎng)問(wèn)密碼的設(shè)置位置在 redis.conf 配置文件中。默認(rèn)是被注釋掉的,沒(méi)有密碼

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 沒(méi)有通過(guò)密碼登錄的用戶(hù),無(wú)法讀/寫(xiě)Redis 。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2)、使用密碼

  • 對(duì)于密碼的使用,有兩種方式:登錄時(shí)未使用密碼,則訪(fǎng)問(wèn)時(shí)先輸入密碼;登錄時(shí)直接使用密碼登錄,訪(fǎng)問(wèn)時(shí)無(wú)需再輸入密碼。
    • A、 登錄時(shí)未使用密碼

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

    • B、 登錄時(shí)使用密碼

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

    • C、 退出時(shí)使用密碼

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

3)、注意

  • 為了方便后面的學(xué)習(xí),我們這里就 不設(shè)置訪(fǎng)問(wèn)密碼了,直接將其 注釋掉 即可。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.2.4)、禁止 / 重命名命令

  • 后面要學(xué)習(xí)兩個(gè)非常危險(xiǎn)的命令:flushalflushdb
    • 它們都是用于直接刪除整個(gè) Redis 數(shù)據(jù)庫(kù)的。若讓用戶(hù)可以隨便使用它們,可能會(huì)危及數(shù)據(jù)安全。
    • Redis 可以通過(guò)修改配置文件來(lái)禁止使用這些命令,或重命名這些命令。
    • 以下配置 ,禁用了 flushall 與 flushdb 命令。
      當(dāng)然,在學(xué)習(xí)過(guò)程中暫時(shí)不禁用它們。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.2.5)、啟動(dòng) Redis

  • 當(dāng)然,若要使客戶(hù)端能夠連接 Redis,則必須開(kāi)啟服務(wù)端的 Redis 。
redis-server /opt/apps/redis/redis.conf

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2.3 Redis 客戶(hù)端分類(lèi)

Redis 客戶(hù)端也像 MySQL 客戶(hù)端一樣有多種類(lèi)型:命令行客戶(hù)端、圖形界面客戶(hù)端、 Java代碼客戶(hù)端。

?? (2.3.1)、命令行客戶(hù)端

  • Redis 提供了基本的命令行客戶(hù)端。打開(kāi)命令行客戶(hù)端的命令為 redis-cli

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • -h :指定要連接的 Redis 服務(wù)器的 IP 。
  • -p :指定要連接的 Redis 的 端口號(hào)。

若連接的是本機(jī)Redis ,且端口號(hào)沒(méi)有改變,保持默認(rèn)的 6379 ,則 -h-p 選項(xiàng)可以省略不寫(xiě)。

?? (2.3.2)、圖形界面客戶(hù)端

1)、Redis Desktop Manager(下面演示使用該客戶(hù)端)

  • Redis 的圖形界面客戶(hù)端很多, 其中較出名的是 Redis Desktop Manager 的客戶(hù)端。 不過(guò),該軟件原來(lái)是免費(fèi)軟件, 從 0.8.8 版本 后變?yōu)榱松虡I(yè)化收費(fèi)軟件。
  • 官網(wǎng)為: https://resp.app/(原來(lái)是 http://redisdesktop.com )。

百度網(wǎng)盤(pán)鏈接( 0.8.8版本):https://pan.baidu.com/s/1xnmm4TMuNd8eqslJ0rRm9A?pwd=e316
提取碼:e316

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

2)、RedisPlus

  • RedisPlus 是為 Redis 可視化管理開(kāi)發(fā)的一款開(kāi)源免費(fèi)的桌面客戶(hù)端軟件,支持 Windows 、Linux 、 Mac 三大系統(tǒng)平臺(tái), RedisPlus 提供更加高效、方便、快捷的使用體驗(yàn),有著更加現(xiàn)代化的用戶(hù)界面風(fēng)格。
  • RedisPlus的官網(wǎng)地址為 https://gitee.com/MaxBill/RedisPlus 。

?? (2.3.3)、Java 代碼客戶(hù)端

  • 所謂 Java 代碼客戶(hù)端就是一套操作 Redis 的 API ,其作用就像 JDBC 一樣,所以 Java 代碼客戶(hù)端其實(shí)就是一個(gè)或多個(gè) Jar 包,提供了對(duì) Redis 的操作接口。
  • 對(duì) Redis 操作的 API 很多 ,例如 jdbc-redisjredis 等 ,但最常用也是最有名的是 Jedis

2.4 Redis 配置文件詳解

  • Redis 的核心配置文件 redis.conf 在安裝根目錄下,默認(rèn)包含 2000 多行。 這些內(nèi)容根據(jù)功能被劃分為了很多部分。下面將一些 重要部分 進(jìn)行介紹。

學(xué)習(xí)的過(guò)程有問(wèn)題可以:1、查閱官方文檔;2、讀英文注釋?zhuān)?、看源碼

?? (2.4.1)、基礎(chǔ)說(shuō)明

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

這部分主要是給出一些說(shuō)明,包含三部分意思:

  • 第 1-6 行用于說(shuō)明,如果要 啟動(dòng) Redis ,需要指出 配置文件的路徑。
  • 第 8-16 行用于說(shuō)明當(dāng)前配置文件中可以使用的的 容量單位意義。
  • 第 18 行用于說(shuō)明這些 容量單位 沒(méi)有大小寫(xiě)之分

?? (2.4.2)、includes

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

指定要在當(dāng)前配置文件中包含的配置文件。 這樣做的目的主要是便于 配置信息管理

  • 可以將 不同場(chǎng)景 的配置都進(jìn)行 單獨(dú)定義,
  • 然后在當(dāng)前 核心配置文件 中根據(jù) 不同場(chǎng)景 選擇包含進(jìn)不同的配置文件。

?? (2.4.3)、modules

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • Redis 配置文件中可以通過(guò) 加載 不同的第三方模塊,來(lái)增強(qiáng)、擴(kuò)展 Redis 的功能。

?? (2.4.4)、network

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

Network 配置模塊是 比較重要的部分,主要進(jìn)行網(wǎng)絡(luò)相關(guān)的配置。其中較重要的有:

  • 1)、bind

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

指定可以訪(fǎng)問(wèn)當(dāng)前 Redis 服務(wù)的客戶(hù)端 IP ,默認(rèn)只允許本地訪(fǎng)問(wèn),即當(dāng)前 Redis 自己訪(fǎng)問(wèn)自己。
為了使所有其它客戶(hù)端都可訪(fǎng)問(wèn),一般要將其注釋掉。

  • 2)、protected-mode

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

默認(rèn)保護(hù)模式是開(kāi)啟的。 其只允許本機(jī)的客戶(hù)端訪(fǎng)問(wèn),即只允許自己訪(fǎng)問(wèn)自己。
但生產(chǎn)中應(yīng)該關(guān)閉,以確保其它客戶(hù)端可以連接 Redis

  • 3)、port

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

Redis 監(jiān)聽(tīng)的連接端口號(hào),默認(rèn) 6379

  • 4)、tcp-backlog

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

tcp-backlog 是一個(gè) TCP 連接的隊(duì)列,其主要用于解決 高并發(fā) 場(chǎng)景下客戶(hù)端 慢連接 問(wèn)題。

  • 這里設(shè)置的值就是這個(gè)隊(duì)列的長(zhǎng)度。該隊(duì)列與 TCP 連接的 三次握手 有關(guān)。
  • 不同的 Linux 內(nèi)核,backlog 隊(duì)列中存放的元素(客戶(hù)端連接)類(lèi)型是不同的。
    • Linux 內(nèi)核 2.2 版本之前 ,該隊(duì)列中存放的是已完成了第一次握手的所有客戶(hù)端連接,其中就包含已完成三次握手的客戶(hù)端連接。當(dāng)然,此時(shí)的 backlog 隊(duì)列中的連接也具有兩種狀態(tài):未完成三次握手的連接狀態(tài)為 SYN_RECEIVED ,已完成三次握手的連接狀態(tài)為 ESTABLISHED 。只有 ESTABLISHED 狀態(tài)的連接才會(huì)被 Redis 處理。
    • Linux 內(nèi)核 2.2 版本之后 TCP 系統(tǒng)中維護(hù)了兩個(gè)隊(duì)列SYN_RECEIVED 隊(duì)列與 ESTABLISHED 隊(duì)列。 SYN_RECEIVED 隊(duì)列中存放的是未完成三次握手的連接, ESTABLISHED 隊(duì)列中存放的是已完成三次握手的連接。此時(shí)的 backlog 就是 ESTABLISHED 隊(duì)列。
  • 查看 Linux 內(nèi)核版本:
uname -a
# 或
cat /proc/version

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

TCP 中的 backlog 隊(duì)列的長(zhǎng)度在 Linux 中由內(nèi)核參數(shù) somaxconn 來(lái)決定。所以,在 Redis中該隊(duì)列的長(zhǎng)度由Redis 配置文件設(shè)置somaxconn 來(lái)共同決定:取它們中的最小值。

  • 查看當(dāng)前 Linux 內(nèi)核中 somaxconn 的值。
cat /proc/sys/net/core/somaxconn

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

生產(chǎn)環(huán)境下(特別是高并發(fā)場(chǎng)景下), backlog 的值最好要大一些,否則可能會(huì)影響系統(tǒng)性能。

  • 修改 /etc/sysctl.conf 文件,在文件最后添加如下內(nèi)容:net.core.somaxconn=2048

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 修改過(guò)后可以重啟虛擬機(jī),也可以通過(guò)執(zhí)行如下命令來(lái)使新的修改生效。
sysctl -p 	# 內(nèi)核在運(yùn)行時(shí),動(dòng)態(tài)修改內(nèi)核的運(yùn)行參數(shù)

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 5)、timeout

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

空閑超時(shí)。當(dāng)客戶(hù)端與 Redis 間的 空閑時(shí)間 超過(guò)該時(shí)長(zhǎng)后,連接自動(dòng)斷開(kāi)。單位秒默認(rèn)值為 0,表示永遠(yuǎn)不超時(shí) 。

  • 6)、tcp-keepalive

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該配置主要用于設(shè)置Redis 檢測(cè) 與 其連接的 所有客戶(hù)端存活性時(shí)間間隔,單位秒。一般是在空閑超時(shí) timeout 設(shè)置為 0 時(shí)進(jìn)行配置。該方式會(huì)降低服務(wù)端的性能,還待商榷!
如果連續(xù)檢測(cè) 兩次 都不在,則連接斷開(kāi)。

?? (2.4.5)、general

  • 1)、daemonize

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該配置可以控制 Redis 啟動(dòng)是否采用守護(hù)進(jìn)程方式,即是否是后臺(tái)啟動(dòng)。 yes 是采用后臺(tái)啟動(dòng)。

  • 2)、pidfile

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該配置用于指定 Redis 運(yùn)行時(shí) pid 寫(xiě)入的文件,無(wú)論 Redis 是否采用守護(hù)進(jìn)程方式啟動(dòng),pid 都會(huì)寫(xiě)入到該配置的文件。
注意,如果沒(méi)有配置 pid 文件,不同的啟動(dòng)方式, pid 文件的產(chǎn)生效果是不同的

  • 采用 守護(hù)進(jìn)程 方式啟動(dòng)(后臺(tái)啟動(dòng), daemonizeyes): pid 文件為 /var/run/redis.pid 。
  • 采用 前臺(tái)啟動(dòng)daemonizeno ):不生產(chǎn)pid 文件
  • 3)、loglevel

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

配置日志的級(jí)別。 Redis 中共有四個(gè)級(jí)別,由低到高 依次是:

  • debug :可以獲取到很多的信息,一般在 開(kāi)發(fā)測(cè)試 時(shí)使用。
  • verbose :可以獲取到很多不太有用的信息,但不像 debug 級(jí)別那么多。
  • notice :可以獲取到在生產(chǎn)中想獲取到的 適當(dāng)多的信息,默認(rèn)級(jí)別。
  • warning :只記錄 非常重要 / 關(guān)鍵 的信息。
  • 4)、logfile

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

指定日志文件。如果設(shè)置為空串,則強(qiáng)制將日志記錄到 標(biāo)準(zhǔn)輸出設(shè)備顯示器)。
如果使用的是 守護(hù)進(jìn)程 啟動(dòng)方式,設(shè)置為空串,則意味著會(huì)將日志發(fā)送到設(shè)備 /dev/null空設(shè)備)。

  • 5)、databases

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

設(shè)置數(shù)據(jù)庫(kù)的數(shù)量默認(rèn)數(shù)據(jù)庫(kù)是 0 號(hào)數(shù)據(jù)庫(kù)。
可以使用 select dbid 在每個(gè)連接的基礎(chǔ)上選擇一個(gè)不同的數(shù)據(jù)庫(kù),其中 dbid 是介于 0'databases'-1 之間的數(shù)字 。

?? (2.4.6)、security

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 用戶(hù)設(shè)置 ACL 權(quán)限Redis 訪(fǎng)問(wèn)密碼 相關(guān)配置。該模塊中最常用的就是 requirepass 屬性。

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 設(shè)置客戶(hù)端訪(fǎng)問(wèn)密碼。注釋掉后則沒(méi)有密碼。

?? (2.4.7)、clients

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 該模塊用于設(shè)置與客戶(hù)端相關(guān)的屬性,其中僅包含一個(gè)屬性 maxclients
    • maxclients 用于設(shè)置 Redis 可 并發(fā)處理 的客戶(hù)端連接數(shù)量, 默認(rèn)值為 10000 。如果達(dá)到了該最大連接數(shù),則會(huì)拒絕再來(lái)的新連接,并返回一個(gè)異常信息:已達(dá)到最大連接數(shù)。

注意,該值不能超過(guò) Linux 系統(tǒng)支持的可打開(kāi)的文件描述符最大數(shù)量閾值。查看該閾值的方式如下。修改該值,可以通過(guò)修改 /etc/secutiry/limits.conf 文件(自己查)。

ulimit -n

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

?? (2.4.8)、memory management

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該配置可以控制 最大可用內(nèi)存相關(guān)內(nèi)容移除 問(wèn)題。

  • 1)、maxmemory

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

將內(nèi)存使用限制設(shè)置為指定的字節(jié)數(shù)。當(dāng)達(dá)到內(nèi)存限制時(shí), Redis 將根據(jù)選擇的逐出策略 maxmemory-policy 嘗試刪除符合條件的 key 。
如果不能按照逐出策略移除 key ,則會(huì)給寫(xiě)操作命令返回 error ,但對(duì)于只讀的命令是沒(méi)有影響的 。

  • 2)、maxmamory-policy

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該屬性用于設(shè)置,當(dāng)達(dá)到 maxmemory 時(shí), Redis 將如何選擇要移除的內(nèi)容。 當(dāng)然,如果沒(méi)有符合相應(yīng)策略的內(nèi)容要?jiǎng)h除,則在執(zhí)行寫(xiě)入命令時(shí)會(huì)給出 errors 的響應(yīng)。 Redis 中共支持 8 種移除策略

  • volatile-lru: 使用近似 LRU (最近最少使用) 算法移除 ,僅適用于設(shè)置了 過(guò)期時(shí)間key
  • allkeys-lru: 使用近似 LRU 算法移除,可適用于所有類(lèi)型key
  • volatile-lfu: 使用近似 LFU (最少使用) 算法移除 ,僅適用于設(shè)置了 過(guò)期時(shí)間key
  • allkeys-lfu: 使用近似 LFU 算法移除,可適用于所有類(lèi)型key 。
  • volatile-random隨機(jī)移除一個(gè) key, 僅適用于設(shè)置了 過(guò)期時(shí)間key
  • allkeys-random隨機(jī)移除一個(gè) key 可適用于所有類(lèi)型key 。
  • volatile-ttl: 移除距離 過(guò)期時(shí)間 最近的 key
  • noeviction: 不移除任何內(nèi)容,只是 在寫(xiě)操作時(shí)返回一個(gè)錯(cuò)誤 ,默認(rèn)值。
  • 3)、maxmemory-samples

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該屬性用于指定挑選要?jiǎng)h除的 key樣本數(shù)量。 樣本的選擇采用的是 LRU 算法,其不能修改。但從樣本中再選擇要移除的 key ,則采用的是 maxmamory-policy 指定的策略。

  • 4)、maxmemory-eviction-tenacity

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

設(shè)置移除容忍度。數(shù)值越小表示容忍度越低,需要移除的數(shù)據(jù)移除延遲越小;數(shù)值越大表示容忍度越高,需要移除的數(shù)據(jù)移除延遲越大。

?? (2.4.9)、threaded I/O

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該配置模塊用于配置 Redis 對(duì) 多線(xiàn)程 IO 模型 的支持。

  • 1)、io-threads

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該屬性用于指定要啟用多線(xiàn)程IO 模型時(shí),要使用的線(xiàn)程數(shù)量。
查看當(dāng)前系統(tǒng)中包含的 CPU 數(shù)量 lscpu

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

  • 2)、io-threads-do-reads

Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!,數(shù)據(jù)庫(kù),linux,服務(wù)器,redis,數(shù)據(jù)庫(kù)

該屬性用于啟用 多線(xiàn)程 IO 模型 中的 多線(xiàn)程處理讀請(qǐng)求 的能力。

注:僅供學(xué)習(xí)參考,如有不足,歡迎指正?。。?span toymoban-style="hidden">文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-738577.html

到了這里,關(guān)于Linux 系統(tǒng)安裝 Redis7 —— 超詳細(xì)操作演示!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux環(huán)境下(CentOS操作系統(tǒng))如何修改MySQL數(shù)據(jù)庫(kù)及Redis的密碼?

    Linux環(huán)境下(CentOS操作系統(tǒng))如何修改MySQL數(shù)據(jù)庫(kù)及Redis的密碼?

    【系列專(zhuān)欄】:博主結(jié)合工作實(shí)踐輸出的,解決實(shí)際問(wèn)題的專(zhuān)欄,朋友們看過(guò)來(lái)! ? 《QT開(kāi)發(fā)實(shí)戰(zhàn)》 《嵌入式通用開(kāi)發(fā)實(shí)戰(zhàn)》 《從0到1學(xué)習(xí)嵌入式Linux開(kāi)發(fā)》 《Android開(kāi)發(fā)實(shí)戰(zhàn)》 《實(shí)用硬件方案設(shè)計(jì)》 長(zhǎng)期持續(xù)帶來(lái)更多案例與技術(shù)文章分享; 歡迎商業(yè)項(xiàng)目咨詢(xún),10年+軟硬全

    2024年02月15日
    瀏覽(27)
  • Linux系統(tǒng)安裝mysql數(shù)據(jù)庫(kù)(超詳細(xì))

    目錄 1、準(zhǔn)備階段???????? 2、具體步驟 2.1、卸載mariadb 2.2、上傳mysql并解壓 2.3、安裝mysql 2.4、查看版本 2.5、啟動(dòng)mysql服務(wù) 2.6、登錄mysql 2.7、修改密碼 2.8、配置mysql遠(yuǎn)程訪(fǎng)問(wèn) 2.9、修改編碼 3、卸載mysql 3.1、查看mysql的安裝情況? 3.2、刪除安裝包? 3.3、在/根目錄下查詢(xún)mysql

    2024年02月12日
    瀏覽(21)
  • Linux系統(tǒng)安裝DB2數(shù)據(jù)庫(kù)的詳細(xì)步驟

    Linux系統(tǒng)安裝DB2數(shù)據(jù)庫(kù)的詳細(xì)步驟

    1、DB2數(shù)據(jù)庫(kù)的安裝 一、將DB2的安裝介質(zhì)上傳至/home目錄,并解壓: ?? tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、執(zhí)行LANG=C 三、進(jìn)入解壓后的server目錄(cd server/),執(zhí)行./db2setup,步驟如下: # cd /home # tar -zxvf v9.7_linuxx64_server.tar.gz # cd server/ # ./db2setup ? ? 請(qǐng)額外注意:這里選擇 Do

    2024年02月08日
    瀏覽(27)
  • Redis7安裝

    Redis7安裝

    由于企業(yè)里面做Redis開(kāi)發(fā),99%都是Linux版的運(yùn)用和安裝,幾乎不會(huì)涉及到Windows版,上一步的講解只是為了知識(shí)的完整性,Windows版不作為重點(diǎn),同學(xué)可以下去自己玩,企業(yè)實(shí)戰(zhàn)就認(rèn)一個(gè)版: Linux 2.1 什么是gcc gcc是linux下的一個(gè)編譯程序,是C程序的編譯工具。 GCC(GNU Compiler Collecti

    2024年02月11日
    瀏覽(24)
  • redis7.0編譯安裝 + bash安裝腳本

    以下操作在debian11、deiban12下演示,ubuntu通用,其它系列l(wèi)inux發(fā)行版自行安裝依賴(lài),其余一樣 以7.2.1版本為例進(jìn)行安裝 最后的bash腳本是對(duì)前面的操作的封裝,一鍵即配置完成,即可使用 1.安裝依賴(lài) 2.下載 redis官方下載頁(yè)面 redis github頁(yè)面 如果下載不下來(lái),復(fù)制鏈接用迅雷這類(lèi)工

    2024年02月16日
    瀏覽(15)
  • CentOS7安裝部署Redis7

    Linux 發(fā)行版: CentOS-7-x86_64-DVD-1804.iso Redis 版本: 7.0.12 Redis Download:https://redis.io/download/ Redis Tag:https://github.com/redis/redis/tags Redis入門(mén)和使用實(shí)踐v2018:https://blog.csdn.net/u011424614/article/details/100170313 [Windows] Redis使用記錄:https://blog.csdn.net/u011424614/article/details/101531772 CentOS基礎(chǔ)操作

    2024年02月12日
    瀏覽(22)
  • Redis安裝與配置指南:適用于Windows、Mac和Linux系統(tǒng)的詳細(xì)教程

    Redis安裝與配置指南:適用于Windows、Mac和Linux系統(tǒng)的詳細(xì)教程

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁(yè)——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來(lái)一定的幫助??文章粗淺,敬

    2024年02月16日
    瀏覽(23)
  • centos7安裝Redis7.2.4

    centos7安裝Redis7.2.4

    參考: 在centos中安裝redis-5.0.7 Memory overcommit must be enabled! Without it, a background save or replication may fail under low m 場(chǎng)景:我本來(lái)在docker里面安裝的Redis,穩(wěn)定運(yùn)行2個(gè)月,但是今天發(fā)現(xiàn)本地突然無(wú)法連接到服務(wù)器的Redis了,但是我的項(xiàng)目還是能正常使用Redis,然后下午到晚上一直在找問(wèn)

    2024年01月25日
    瀏覽(21)
  • windows一鍵安裝redis7.0.11

    windows一鍵安裝redis7.0.11

    下載地址: https://gitcode.net/zengliguang/windows_redis7.0.11_offline_install.git ? 使用git進(jìn)行進(jìn)行clone下載?? 在電腦桌面或者其他文件夾下?,鼠標(biāo)右鍵點(diǎn)擊? 選擇git?clone??,下圖中url為下載地址,Directory為本地存儲(chǔ)路徑,點(diǎn)擊ok開(kāi)始下載 如下圖所示已成功下載 ? 雙擊?redis-install-win.ba

    2024年02月08日
    瀏覽(27)
  • 安裝Linux操作系統(tǒng)CentOS 6詳細(xì)圖文步驟

    安裝Linux操作系統(tǒng)CentOS 6詳細(xì)圖文步驟

    為滿(mǎn)足業(yè)務(wù)對(duì)Linux操作系統(tǒng)部署的要求,本文檔主要提供CentOS 6操作系統(tǒng)的最小化安裝和基本配置, 安裝本系統(tǒng)建議最少1GB內(nèi)存和2GB磁盤(pán)空間。 1、??? 使用光盤(pán)或者掛載ISO鏡像,在出現(xiàn)如下圖形界面時(shí)選擇【Install or upgrade an existing system】并按Enter鍵進(jìn)行下一步。 2、??? 下一

    2024年02月13日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包