Redis入門:Linux基礎安裝

Redis入門:Linux基礎安裝

要安裝Redis需要準備以下基本的環境。

1 準備工作

本次安裝是在Unix類操作系統安裝。

1.1 安裝環境

Unix類操作系統,可以使用Linux、CentOS等。

此處選擇使用CentOS7。

系統中必須提前安裝gcc,安裝命令如下:

yum install gcc

1.2 關閉防火牆

CentOS 7的防火牆臨時命令如下:

#查看狀態
systemctl status firewalld.service
#啓動防火牆
systemctl start firewalld.service
#重啓防火牆
systemctl restart firewalld.service
#臨時關閉防火牆
systemctl stop firewalld.service
#禁止防火牆開機自啓
systemctl disable firewalld.service

#下面一組操作防火牆的命令也支持:
service firewalld status
service firewalld start
service firewalld restart
service firewalld stop

1.3 創建目錄

在規劃的目錄中創建保存軟件的目錄。此處的目錄規劃的爲/home/software/

mkdir –p /home/software
cd /home/software

1.4 下載Redis

下載Redis的網址:https://redis.io/download

現在官網提供的最新的穩定版本爲6.2.6版本。可以直接在官網下載。下載完成之後,上傳到上一步規劃的目錄中。

另外可以直接在上一步創建的目錄中,使用wget進行下載,命令如下:

#下載指定版本:
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
#下載最新版本
wget http://download.redis.io/redis-stable.tar.gz

pwd
/home/software
ls
redis-6.2.6.tar.gz

1.5 解壓安裝包

解壓命令如下:

tar –zxvf redis-6.2.6.tar.gz
ls
redis-6.2.6
redis-6.2.6.tar.gz

2 編譯安裝

以上的準備工作,做完之後,下面要進行的就是編譯安裝了,因爲不管是那種下載方式,下載的都是Redis的源碼,Redis是用C語言編寫的,這也是爲什麼在安裝Redis之前需要準備gcc的原因。

下面是安裝的命令:

cd redis-6.2.6
#編譯安裝命令
make

早期的版本使用的安裝命令如下:

make && make install

2.1 命令未找到錯誤

如果沒有安裝gcc會報找不到一系列命令的錯誤,例如:

make[2]: 進入目錄“/home/software/redis/deps/hiredis”
cc -std=c99 -pedantic -c -O3 -fPIC   -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb alloc.c
make[2]: cc:命令未找到
make[2]: *** [alloc.o] 錯誤 127
make[2]: 離開目錄“/home/software/redis/deps/hiredis”
make[1]: *** [hiredis] 錯誤 2
make[1]: 離開目錄“/home/software/redis/deps”
make: [persist-settings] 錯誤 2 (忽略)
    CC adlist.o
/bin/sh: cc: 未找到命令
make: *** [adlist.o] 錯誤 127
[root@lk7 src]# make && make install
    CC Makefile.dep
    CC adlist.o
/bin/sh: cc: 未找到命令
make: *** [adlist.o] 錯誤 127
[root@lk7 src]# cd ..
[root@lk7 redis]# make
cd src && make all
make[1]: 進入目錄“/home/software/redis/src”
    CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 錯誤 127
make[1]: 離開目錄“/home/software/redis/src”
make: *** [all] 錯誤 2
[root@lk7 redis]# ls
00-RELEASENOTES  BUGS  CONDUCT  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest  runtest-cluster  runtest-moduleapi  runtest-sentinel  sentinel.conf  src  tests  TLS.md  utils
[root@lk7 redis]# cd ,,
-bash: cd: ,,: 沒有那個文件或目錄

遇到這個錯誤,將剛解壓的目錄刪掉,然後進行gcc安裝,然後重新解壓一份,再進行安裝。

3 使用服務

3.1 相關命令

以下命令位於Redis目錄中的src目錄中。

  • redis-server:是Redis服務器本身,用於啓動redis服務。
  • redis-sentinel:Redis Sentinel 可執行文件(監控和故障轉移)。
  • redis-cli:Redis的客戶端。
  • redis-benchmark:用於檢查Redis性能。
  • redis-check-aof和redis-check-rdb(3.0 及以下版本中的redis-check-dump)在數據文件損壞的罕見事件中非常有用。

3.2 目錄安排

Redis的這些命令,可以從程序中單獨拷貝出來,放入系統已經配置好環境變量的目錄中,這樣方便使用。

通常將命令移動到/usr/local/bin目錄中:

cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/
cp redis-sentinel /usr/local/bin/
cp redis-check-aof /usr/local/bin/
cp redis-check-rdb /usr/local/bin/
cp redis-benchmark /usr/local/bin/

通過此步操作,在任何目錄都可以直接使用這些命令了。

3.3 啓動服務

啓動服務的命令如下:

redis-server

啓動服務的過程如下:

[root@lk7 ~]# redis-server 
127399:C 02 Jan 2022 14:13:56.412 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
127399:C 02 Jan 2022 14:13:56.412 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=127399, just started
127399:C 02 Jan 2022 14:13:56.412 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
127399:M 02 Jan 2022 14:13:56.413 * Increased maximum number of open files to 10032 (it was originally set to 1024).
127399:M 02 Jan 2022 14:13:56.413 * monotonic clock: POSIX clock_gettime
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.2.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 127399
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           https://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

127399:M 02 Jan 2022 14:13:56.413 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
127399:M 02 Jan 2022 14:13:56.413 # Server initialized
127399:M 02 Jan 2022 14:13:56.413 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
127399:M 02 Jan 2022 14:13:56.413 * Ready to accept connections

啓動之後可以看到這幾個信息:

  • Running in standalone mode(運行在單機模式)
  • Port:6379(服務使用的端口)
  • PID:127399(當前服務的進程ID)

當前的啓動方式會一直佔用當前連接的輸入。所以可以使用以下啓動方式,將進程轉入後臺:

redis-server &

此方式啓動之後,再點擊回車鍵,則出現輸入提示符,即可正常輸入其他命令。

3.4 檢查服務

檢查服務是否正常工作,有以下幾個手段:

使用客戶端進行連接測試:

redis-cli ping
PONG

回覆PONG表示成功。

還可以使用如下方式:

[root@lk7 redis-6.2.6]# redis-cli 
127.0.0.1:6379> ping
PONG

也可以使用檢查進程的方式,對當前服務進行檢查:

[root@lk7 redis-6.2.6]# ps -ef | grep redis
root      27259 125266  0 14:40 pts/1    00:00:00 grep --color=auto redis
root     127399 125434  0 14:13 pts/2    00:00:01 redis-server *:6379
  • redis-server:表示redis服務。
  • *:表示所有IP地址都可以訪問當前redis服務。如果列出的是一系列ip地址,那麼就只有這些列出的IP地址可以訪問redis服,除此之外的其他IP地址的請求都會被拒絕。

3.5 停止服務

停止Redis服務,有兩種方式:

佔用控制檯的Redis服務,直接使用Ctrl+C的方式停止即可。

不佔用控制檯的Redis服務,需要登錄客戶端執行停止命令進行停止,操作如下:

[root@lk7 ~]# redis-cli 
127.0.0.1:6379> shutdown
33782:M 02 Jan 2022 14:46:21.025 # User requested shutdown...
33782:M 02 Jan 2022 14:46:21.025 * Saving the final RDB snapshot before exiting.
33782:M 02 Jan 2022 14:46:21.026 * DB saved on disk
33782:M 02 Jan 2022 14:46:21.026 # Redis is now ready to exit, bye bye...
not connected> exit
[1]+  完成                  redis-server
[root@lk7 ~]# ps -ef | grep redis
root      34866 125434  0 14:46 pts/2    00:00:00 grep --color=auto redis
[root@lk7 ~]#

此種方式進行服務停止比較友好,它會將redis中的數據進行持久化。

3.6 設置密碼

Redis有兩種設置密碼的方式,一種是永久密碼,一種是臨時密碼。

設置密碼一般是爲了保證安全,以及使用遠程登錄。

3.6.1 永久密碼

永久密碼是通過配置文件進行設置的,具體操作如下:

編輯配置文件redis.conf文件,第901行,將設置密碼的選項打開,如下:

899 # command, these will cause requirepass to be ignored.
900 #
901 # requirepass foobared
902 requirepass 123

設置完退出保存。

啓動的時候要使用配置文件進行啓動,此密碼才能生效,啓動方式如下:

src/redis-server redis.conf &

在啓動命令後加上配置文件,命令中注意路徑。

3.6.2 臨時密碼

臨時密碼是通過命令設置的,只在本次服務器運行的時候生效,一旦服務重啓該密碼就失效了。

設置密碼的命令如下:

config set requirepass keyword

操作步驟如下:

[root@lk7 redis-6.2.6]# redis-cli 
127.0.0.1:6379> config set requirepass 123
OK
127.0.0.1:6379> exit
[root@lk7 redis-6.2.6]# redis-cli 
127.0.0.1:6379> key *
(error) ERR unknown command `key`, with args beginning with: `*`, 
127.0.0.1:6379> auth 123
OK
127.0.0.1:6379>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章