溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CentOS7下怎么用yum安裝Redis

發(fā)布時間:2022-04-07 16:27:33 來源:億速云 閱讀:156 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“CentOS7下怎么用yum安裝Redis”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“CentOS7下怎么用yum安裝Redis”吧!

(1).Redis概述

  Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value(鍵值型)數(shù)據(jù)庫(非關(guān)系型數(shù)據(jù)庫),并提供多種語言的API。

  Redis是一個高性能的Key-Value數(shù)據(jù)庫。它的出現(xiàn)很大程度補償來Memc++ached這類Key-Value型存儲的不足,在部分場合下可以對關(guān)系型數(shù)據(jù)庫起到很好的補充作用。它提供來Java、C/C++、PHP、JavaScript、Perl、Object-C、Python、Ruby、Erlang等客戶端,使用方便。

  Redis支持主從同步,Redis能夠借助于Sentinel(哨兵,Redis自帶的)工具來監(jiān)控主從節(jié)點,當(dāng)主節(jié)點發(fā)生故障時,會自己提升另外一個從節(jié)點成為新的主節(jié)點。

 1)支持的數(shù)據(jù)類型

  和Memcached類似,但它支持存儲的Value類型相對更多,包括String(字符串)、List(列表)、Sets(集合)、Sorted
Sets(有序集合)和Hash(哈希類型、關(guān)聯(lián)數(shù)組)、Bitmaps(位圖)和HyperLoglog。

 2)性能

  100萬較小的鍵存儲字符串,大概消耗100M內(nèi)存;

  由于Redis是單線程,如果服務(wù)器主機(jī)上有多個CPU,只有一個能夠使用,但并不意味著CPU會成為瓶頸,因為Redis是一個比較簡單的K-V數(shù)據(jù)存儲,CPU通常不會成為瓶頸的;

  在常見的linux服務(wù)器上,500K(50萬)的并發(fā),只需要一秒鐘處理,如果主機(jī)硬件較好的情況下,每秒鐘可以達(dá)到上百萬的并發(fā).

 3)Redis與Memcache對比

  Memcache只能使用內(nèi)存來緩存對象。而Redis除了可以使用內(nèi)存來緩存對像,還可以周期性的將數(shù)據(jù)保存到磁盤上,對數(shù)據(jù)進(jìn)行永久存儲。當(dāng)服務(wù)器突然斷電或死機(jī)后,
redis基于磁盤中的數(shù)據(jù)進(jìn)行恢復(fù);

  Redis是單線程服務(wù)器,只有一個線程來響應(yīng)所有的請求。Memcache是多線程的;

  Redis支持更多的數(shù)據(jù)類型。

(2).安裝

  yum安裝redis時,建議使用Remi
repository源。因為Remi源提供了目前最新版本的Redis,可以通該源使用YUM安裝目前最新版本的Redis。另外還提供了PHP和MySQL的最新yum源,以及相關(guān)服務(wù)程序。

 1)Remi repository源依賴于epel源,因此需要先安裝epel源

1

[root@youxi1 ~]# yum -y install
epel-release

 2)安裝Remi repository源

1

2

3

4

5

6

7

[root@youxi1 ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

[root@youxi1 ~]# ls
/etc/yum.repos.d/  
//下載完成后會出現(xiàn)許多remi的yum源,這里要用到的是remi.repo這個源

CentOS-Base.repo CentOS-Sources.repo remi-glpi92.repo
remi-php70.repo remi-safe.repo

CentOS-CR.repo CentOS-Vault.repo remi-glpi93.repo
remi-php71.repo

CentOS-Debuginfo.repo epel.repo remi-glpi94.repo
remi-php72.repo

CentOS-fasttrack.repo epel-testing.repo
remi-modular.repo remi-php73.repo

CentOS-Media.repo remi-glpi91.repo remi-php54.repo
remi.repo

 3)使用指定的yum源安裝Redis

1

2

3

[root@youxi1 ~]# yum --enablerepo=remi install -y
redis  
//--enablerepo指定yum源

[root@youxi1 ~]# redis-cli
--version  
//安裝完成后使用命令查看一下版本

redis-cli
5.0.5

  注意:remi源安裝完成后,默認(rèn)為不啟動,在需求使用remi
repository源安裝程序時,需求–enablerepo=remi選項指定使用remi
repository源是可以被使用的,然后進(jìn)行安裝。

 4)啟動Redis并設(shè)置開機(jī)自啟

1

2

3

[root@youxi1 ~]# systemctl start
redis

[root@youxi1 ~]# systemctl enable
redis

Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service
to
/usr/lib/systemd/system/redis.service.

  注意:Redis的端口號是6379

(3).配置文件信息

  Linux下,Redis的配置文件存放在/etc/目錄下的redis.conf。以下列出來可能會用到的參數(shù):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

//第69行,Redis監(jiān)聽的地址

bind 127.0.0.1

//第88行,安全模式,是否禁止外網(wǎng)訪問Redis,yes表示啟用,只能通過本地訪問

protected-mode yes

//第92行,監(jiān)聽的端口號

port 6379

/*第101行,指定tcp-backlog長度。tcp-backlog是一個等待隊列。


*
當(dāng)大量請求需要Redis處理時,需要等待的請求隊列會通過backlog來緩存。


* backlog的數(shù)量決定來可以緩存的隊列數(shù)

*/

tcp-backlog 511

//第109行,指定使用sock文件通信以及sock文件位置。如果服務(wù)端和客戶端在同一臺主機(jī)上,建議打開。sock方式通信可以直接在內(nèi)存中交換,不經(jīng)過TCP/IP協(xié)議棧進(jìn)行封裝、拆封

# unixsocket /tmp/redis.sock

//第110行,定義sock文件的權(quán)限

# unixsocketperm 700

//第113行,表示客戶端連接成功后,空閑多長時間超時(非活躍,沒有數(shù)據(jù)交互)。0表示不開啟此功能

timeout 0

//第130行,維持長鏈接的時間,單位秒

tcp-keepalive 300

//第136行,是否在后臺運行守護(hù)進(jìn)程。如果使用redis服務(wù)腳本啟動,即使為no,也會運行一個守護(hù)進(jìn)程。一般設(shè)置yes

daemonize no

//第147行,是由upstart還是systemd接管redis進(jìn)程。默認(rèn)無監(jiān)督互動,不需要修改。

supervised no

//第158行,pid文件地址

pidfile /var/run/redis_6379.pid

//第166行,日志級別

loglevel notice

//第174行,日志文件位置

logfile /var/log/redis/redis.log

//第186行,默認(rèn)由多少個數(shù)據(jù)庫。但是在分布式中,只能有一個

databases 16

 

/*第218到220行,快照存儲策略,存到磁盤的持久化策略


*第一個數(shù)字是單位時間,單位為秒;第二個數(shù)字是鍵值發(fā)生變化的次數(shù)


* 例如第一個,900秒內(nèi)至少發(fā)生1次鍵值變化,則做一次快照(持久化)


* 第二個就是,300秒內(nèi)至少發(fā)生10次鍵值變化,則做一次快照(持久化)


* 所有條件是并列關(guān)系,根據(jù)不同的鍵值變化選擇使用規(guī)則

*/

save 900 1

save 300 10

save 60 10000

//第235行,在進(jìn)行快照備份時,一旦發(fā)生錯誤是否停止,默認(rèn)yes即可

stop-writes-on-bgsave-error yes

//第241行,指定RDB文件是否壓縮。yes表示壓縮,會消耗CPU資源

rdbcompression yes

/*第250行,是否對RDB文件做校驗碼檢測。

*此項定義在redis啟動時加載RDB文件是否對文件檢查校驗碼,在redis生成RDB文件是會生成校驗信息,在redis再次啟動或裝載RDB文件時,是否檢測校驗信息。

*如果檢測的情況下會消耗時間,會導(dǎo)致redis啟動時慢,但是能夠判斷RDB文件是否產(chǎn)生錯誤。

*/

rdbchecksum yes

//第253行,RDB文件名稱

 dbfilename dump.rdb

//第263行,RDB文件存放的路徑

dir /var/lib/redis

 

//第286行,定義Master服務(wù)器的IP和端口,主從復(fù)制的配置信息

# replicaof <masterip>
<masterport>

//第293行,定義Master服務(wù)器的密碼,主從復(fù)制的配置信息

# masterauth <master-password>

//第308行,當(dāng)從端在主從復(fù)制過程中與主端斷開連接,yes表示繼續(xù)提供服務(wù),即使數(shù)據(jù)可能不是最新的;no表示對請求返回錯誤信息

replica-serve-stale-data yes

//第324行,從端只讀

replica-read-only yes

//第355行,默認(rèn)不使用diskless(無磁盤)同步方式

repl-diskless-sync no

//第367行,diskless(無磁盤)方式進(jìn)行數(shù)據(jù)傳遞之前會有一個時間的延遲,以便從端能夠進(jìn)行到待傳送的目標(biāo)隊列中,默認(rèn)5秒

repl-diskless-sync-delay 5

//第373行,從端向主端發(fā)送ping的時間間隔,默認(rèn)10秒

# repl-ping-replica-period 10

//第385行,設(shè)置超時時間

# repl-timeout 60

/*第400行,是否啟用TCP_NODELAY。

* 如果啟用則會使用少量的TCP包和帶寬去進(jìn)行數(shù)據(jù)傳輸?shù)綇亩?,速度較慢;

* 如果不啟用則使用較多的帶寬進(jìn)行數(shù)據(jù)傳輸,速度較快。

*/

repl-disable-tcp-nodelay no

/*第413行,設(shè)置backlog的大小。backlog是一個緩沖區(qū),在從端失聯(lián)時存放要同步到從端的數(shù)據(jù)。

*
因此當(dāng)從端重連時,一般是不需要完全同步的。backlog越大,從端可以失聯(lián)的時間就越長(相對來說)

*/

# repl-backlog-size 1mb

//第426行,一段時間后,從端還沒有連上master,那么backlog(緩沖區(qū))的內(nèi)存將被釋放。0表示永不釋放,默認(rèn)3600秒

# repl-backlog-ttl 3600

//第441行,從端的優(yōu)先級設(shè)置,數(shù)字越小優(yōu)先級越高。主端故障會根據(jù)優(yōu)先級高的從端來進(jìn)行恢復(fù)。如果設(shè)置的是0,那么該從端永遠(yuǎn)不會被選中

replica-priority 100

//第457到458行,當(dāng)主端的可用從端小于3個或網(wǎng)路延遲島嶼10秒時,主端拒絕接收用戶的寫請求。

# min-replicas-to-write 3

# min-replicas-max-lag 10

 

//第507行,指定認(rèn)證密碼,默認(rèn)不啟動

# requirepass foobared

 

//第539行,同時連接redis的最大數(shù)量

# maxclients
10000

  特別注意:第69行的bind,第88行的protected-mode,第136行的daemonize,第539行的maxclients,還有主從復(fù)制的所有配置參數(shù)。

(4).redis的簡單使用

  最最簡單的使用:redis-cli -h [IP地址] -p
[端口號]。如果是連接本地,-h和-p都可以省略。

 1)Reids字符串操作

  鍵的命名規(guī)則:可以使用ASCII字符;鍵的長度不要過長,鍵的長度越長則消耗的空間越多;在同一個庫中(名稱空間),鍵的名稱不得重復(fù),如果復(fù)制鍵的名稱,實際上是修改鍵中的值;在不同的庫中(名稱空間),鍵的多種名稱可以重復(fù);鍵可以實現(xiàn)自動過期。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@youxi1 ~]# redis-cli

127.0.0.1:6379> set system
centos  
//創(chuàng)建鍵值

OK

127.0.0.1:6379> get system  //獲取鍵值

"centos"

127.0.0.1:6379> exit

[root@youxi1 ~]# systemctl restart
redis  
//重啟

[root@youxi1 ~]# redis-cli

127.0.0.1:6379> get system  //可以看到鍵值是存在的

"centos"

127.0.0.1:6379> set name "youxi" EX
10  
//如這般設(shè)置,則表示該鍵值值存在10秒

OK

127.0.0.1:6379> get name  //10秒過后再次查看,這就是一個臨時鍵值

(nil)

 2)如果開啟認(rèn)證功能

  首先修改配置文件,開啟認(rèn)證功能

1

2

3

[root@youxi1 ~]# vim /etc/redis.conf

requirepass 123456  //在第507行,去除注釋,設(shè)置認(rèn)證密碼

[root@youxi1 ~]# systemctl restart
redis

  此時再次使用redis

1

2

3

4

5

6

7

[root@youxi1 ~]# redis-cli

127.0.0.1:6379> get system  //沒有認(rèn)證時,會報錯

(error) NOAUTH Authentication
required.

127.0.0.1:6379> auth 123456  //認(rèn)證

OK

127.0.0.1:6379> get system  //認(rèn)證后,再次獲取鍵值,成功

"centos"

(5).配置持久化

  Redis工作時所有數(shù)據(jù)集都是存儲于內(nèi)存中的。如果Redis崩潰或斷電會導(dǎo)致所有數(shù)據(jù)丟失,所以Redis提供了持久化功能來保證數(shù)據(jù)的可靠性。Redis持久化有兩種實現(xiàn)方法:RDB和AOF。

  RDB: 存儲為二進(jìn)制格式的數(shù)據(jù)文件,是默認(rèn)啟動的持久化機(jī)制;按事先定制的策略,周期性地將數(shù)據(jù)保存至磁盤。

  AOF:Append Only File類似于MySQL的二進(jìn)制日志,記錄每一次redis的寫操作命令,以順序IO方式附加在指定文件的尾部,是使用追加方式實現(xiàn)的,這也叫做一種附加日志類型的持久化機(jī)制。由于每一次的操作都記錄,則會隨著時間長而增大文件的容量,并且有些記錄的命令是多余的。但是redis進(jìn)程能夠自動的去掃描這個對應(yīng)的AOF文件,把其中一些冗余的操作給合并一個,以實現(xiàn)將來一次性把數(shù)據(jù)恢復(fù)。

  RDB的配置其實上面已經(jīng)說明過了,我這里再復(fù)制一下,如下。總共就6個配置點。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

/*

* 第218到220行,快照存儲策略,存到磁盤的持久化策略

*第一個數(shù)字是單位時間,單位為秒;第二個數(shù)字是鍵值發(fā)生變化的次數(shù)

* 例如第一個,900秒內(nèi)至少發(fā)生1次鍵值變化,則做一次快照(持久化)

* 第二個就是,300秒內(nèi)至少發(fā)生10次鍵值變化,則做一次快照(持久化)

* 所有條件是并列關(guān)系,根據(jù)不同的鍵值變化選擇使用規(guī)則

*/

save 900 1

save 300 10

save 60 10000

//第235行,在進(jìn)行快照備份時,一旦發(fā)生錯誤是否停止,默認(rèn)yes即可

stop-writes-on-bgsave-error yes

//第241行,指定RDB文件是否壓縮。yes表示壓縮,會消耗CPU資源

rdbcompression yes

/*第250行,是否對RDB文件做校驗碼檢測。

*此項定義在redis啟動時加載RDB文件是否對文件檢查校驗碼,在redis生成RDB文件是會生成校驗信息,在redis再次啟動或裝載RDB文件時,是否檢測校驗信息。

*如果檢測的情況下會消耗時間,會導(dǎo)致redis啟動時慢,但是能夠判斷RDB文件是否產(chǎn)生錯誤。

*/

rdbchecksum yes

//第253行,RDB文件名稱

 dbfilename dump.rdb

//第263行,RDB文件存放的路徑

dir /var/lib/redis

到此,相信大家對“CentOS7下怎么用yum安裝Redis”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI