成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細講解 Redis 的兩種安裝部署方式

運維 數據庫運維 Redis
Redis 是一款比較常用的 NoSQL 數據庫,我們通常使用 Redis 來做緩存,這是一篇關于 Redis 安裝的文章,所以不會涉及到 Redis 的高級特性和使用場景,Redis 能夠兼容絕大部分的 POSIX 系統。

 Redis 是一款比較常用的 NoSQL 數據庫,我們通常使用 Redis 來做緩存,這是一篇關于 Redis 安裝的文章,所以不會涉及到 Redis 的高級特性和使用場景,Redis 能夠兼容絕大部分的 POSIX 系統,例如 Linux、OS X 等,但是很遺憾不支持在 Windows 上安裝,當然如果你需要在 windows 下安裝 redis 的話,也是可以的,微軟公司的開源技術組在 GitHub 上 維護一個 Redis 的分支,GitHub 地址為:https://github.com/microsoftarchive/redis,我看了一下這上面的版本比較舊,所以我個人不推薦使用這個來安裝 Redis ,Windows 用戶可以使用 Docker 容器來安裝,也是非常方便、簡單的,接下來我們就一起來看看 Redis 的安裝方式吧。

[[282267]]

1、Linux 系統下安裝 redis

安裝

在 redis 官網中有安裝教程,鏈接:https://redis.io/download,安裝步驟我拷貝過來了,步驟如下:

  1. $ wget http://download.redis.io/releases/redis-5.0.6.tar.gz 
  2. $ tar xzf redis-5.0.6.tar.gz 
  3. $ cd redis-5.0.6 
  4. $ make 

我在 /usr/local 目錄下面操作的這些命令,也就是說 Redis 的安裝目錄為 /usr/local ,這些命令執行完之后你的機器上安裝好 Redis ,在安裝的過程中,如果你的機器上沒有安裝 gcc ,你安裝好 gcc 之后再 make 可能會報以下錯誤

  1. jemalloc/jemalloc.h: No such file or directory 

當時沒有截取詳細的錯誤信息,只把主要的一段截取出來了,這個錯誤的原因是我們上一次 make 報錯之后,有編譯后的文件,所以我們需要清除上一次的殘留文件再重新編譯,將 make 換成 make distclean && make 就可以了。

redis.conf 文件

redis.conf 是 Redis 的配置文件,redis 的所有配置有在這個文件里面,這個文件挺大的有接近 1400 行,有關 redis 的操作、使用說明都在里面,可以詳細的閱讀閱讀這個配置文件,大部分情況下我們使用默認配置就行,只需要設置少量配置就行。redis.conf 的存放位置在 Redis 的安裝目錄下,我這里是 /usr/local/redis-5.0.5 目錄下,一起來看看我們可能會修改的幾個配置:

  • bind 127.0.0.1:允許訪問機器的IP,默認只有本機才能訪問,你可以修改 ip 來運行其他機器也能訪問,但是如果你想讓所有機器都可以訪問的話,直接設置為 bind 0.0.0.0 就行了。
  • port 6379:redis 實例啟動的端口,默認為 6379
  • daemonize no:是否以守護進程的方式運行,默認是 no,也就是說你把啟動窗口關閉了,redis 實例也就關閉了,一般這個選項我們設置為 yes,以守護進程的方式運行,說俗一點就是后臺運行。
  • pidfile /var/run/redis_6379.pid:如果我們使用守護進程方式運行的話 ,就會產生一個后綴名為 .pid 的文件,這個使用默認的也行
  • dir ./:持久化文件存放位置,這個配置我們還是設置一下為好,我這里設置為 dir /usr/local/redis_data
  • appendonly no:是否開啟 AOF 持久化方式,redis 默認只開啟了 RDB 模式,這里我們設置為 yes,兩種方式都開啟,雙重保險,關于這兩種方式的區別,我們后面在學習

好像大概設置這幾個就好了,更多關于 redis.conf 的配置,你可以詳細閱讀 redis.conf 配置文件或者查閱相關手冊。

redis 的啟動

Redis 的啟動非常簡單,Redis 安裝完成之后,會在 /usr/local/redis-5.0.5/src 存放 Redis 的 shell 交互命令,其中有一個 redis-server ,這個就是 Redis 的啟動命令,執行:

  1. ./redis-server   /usr/local/redis-5.0.5/redis.conf 

后面跟的是 redis.conf 的文件路徑,不出意外的話我們將啟動成功,你會看到如下界面:

 

redis 啟動

這里我們使用的是守護進程的方式啟動,所以不會出現帶有 redis logo 的啟動界面,我們可以使用 shell 命令登錄到 Redis 中,還是在 src 目錄下面,執行下面這條命令:

  1. ./redis-cli 

這命令你就進入了 shell 交互界面,./redis-cli 命令可以帶一些參數,例如 -h IP 這個就可以進入指定機器的 Redis 實例,進入之后你就可以進行一些操作了,如下圖所示:

 

redis 操作

redis 關閉

Redis 的關閉方式有兩種,一種是在 shell 交互界面關閉,另一種是 kill + 進程號關閉 Redis 實例的方式

shell 交互界面關閉

  1. shutdown [nosave|save] 

在 shell 交互界面輸入 shutdown 命令就可以關閉 Redis 實例,后面有一個可選參數,nosave 就是不將內存中的數據持久化,save 就是將內存中的數據持久化。shutdown 關閉方式是比較優雅的關閉方式,建議使用這種關閉方式

Kill + 進程號關閉 Redis 實例

使用 ps -ef|grep redis 查看 Redis 進程號,如下圖所示:

 

查看 redis 進程號

在這里找到我們需要關閉 redis 實例的進程號,比如這里我們的進程號為 27133,那么我們就直接使用 kill 27133 關閉 Redis 實例服務,這種方式我們需要注意一個地方,那就是需要我們去把 pid 文件刪掉,pid 文件存放的位置我們在 redis.conf 里配置的 pidfile /var/run/redis_6379.pid,我們需要到 /var/run 目錄下把 redis_6379.pid 刪掉,這樣下一次才能正常重啟 Redis 服務。

上面兩種方式都可以關閉 Redis 服務,隨便選一種都行,但是切記不要使用 Kill 9 方式關閉 Redis 進程,這樣 Redis 不會進行持久化操作,除此之外,還會造成緩沖區等資源不能優雅關閉,極端情況下會造成 AOF 和復制丟失數據的情況

redis 開機自啟動

在服務器上我們可能需要將 Redis 設置為開機自啟動,其實這個也非常簡單,我們只需要做以下四步操作即可。

1、 編寫配置腳本 vim /etc/init.d/redis

  1. #!/bin/sh 
  2. # Simple Redis init.d script conceived to work on Linux systems 
  3. as it does use of the /proc filesystem. 
  4. #chkconfig: 2345 80 90 
  5. #description:auto_run 
  6. # 端口號 
  7. REDISPORT=6379 
  8. # 啟動命令 
  9. EXEC=/usr/local/redis-5.0.5/src/redis-server 
  10. # shell 交付命令 
  11. CLIEXEC=/usr/local/redis-5.0.5/src/redis-cli 
  12. # pid 存放位置 
  13. PIDFILE=/var/run/redis_${REDISPORT}.pid 
  14. # redis 配置文件 
  15. CONF="/usr/local/redis-5.0.5/redis.conf" 
  16.  
  17. case "$1" in 
  18.     start) 
  19.         if [ -f $PIDFILE ] 
  20.         then 
  21.                 echo "$PIDFILE exists, process is already running or crashed" 
  22.         else 
  23.                 echo "Starting Redis server..." 
  24.                 $EXEC $CONF 
  25.         fi 
  26.         ;; 
  27.     stop) 
  28.         if [ ! -f $PIDFILE ] 
  29.         then 
  30.                 echo "$PIDFILE does not exist, process is not running" 
  31.         else 
  32.                 PID=$(cat $PIDFILE) 
  33.                 echo "Stopping ..." 
  34.                 $CLIEXEC -p $REDISPORT shutdown 
  35.                 while [ -x /proc/${PID} ] 
  36.                 do 
  37.                     echo "Waiting for Redis to shutdown ..." 
  38.                     sleep 1 
  39.                 done 
  40.                 echo "Redis stopped" 
  41.         fi 
  42.         ;; 
  43.     *) 
  44.         echo "Please use start or stop as first argument" 
  45.         ;; 
  46. esac 

2、修改 redis.conf,設置 redis 為守護進程方式運行

  1. ################################# GENERAL ##################################### 
  2.  
  3. By default Redis does not run as a daemon. Use 'yes' if you need it. 
  4. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 
  5. daemonize yes 

3、修改文件執行權限

  1. chmod +x /etc/init.d/redis 

4、設置開機啟動

  1. # 啟動 redis 
  2. service redis start 
  3. # 停止 redis 
  4. service redis stop 
  5. # 開啟服務自啟動 
  6. chkconfig redis on 

2、Docker 安裝Redis

Docker 安裝 Redis 整體來說比較方便,我說的是非生產環境,就是自己搭著測試或者學習的環境,下面的步驟全部建立在你已經在你的電腦上安裝了 Docker 的基礎上,下面就來開啟安裝之旅。

1、拉取 redis 鏡像

  1. docker pull redis 

2、快速啟動

  1. docker run -p 6379:6379 --name myredis -d redis redis-server --appendonly yes 

這種方式啟動使用的默認的 redis.conf 配置,我們先來看看這幾個參數的意思

  • -p 6379:6379:映射端口,前面的 6379 是外部 redis 端口,后面的 6379 是容器內部的 redis 端口
  • --name myredis :容器對應的名稱
  • redis redis-server:redis 代表著 redis 鏡像 redis-server 表示的是執行的命令,也是就 redis 的啟動命令,跟我們 linux 下面的 ./redis-server 一樣
  • --appendonly yes:開啟 AOF 持久化

3、使用 redis

通過上面的步驟,我們已經在 Docker 中啟動了 Redis 服務,下面我們就來通過 redis-cli 訪問一下,使用下面這條命令就可以啟動 redis-cli

  1. docker exec -it dockerRedis redis-cli 

其中 dockerRedis 是你啟動 Redis 容器名稱,不出意外的話,你可以啟動一個 redis-cli 客戶端,如下圖所示:

 

docker redis-cli 客戶端

上面就是使用 Docker 簡單的啟動 Redis ,整體來說比 linux 上面安裝啟動要方便不少,主要是你可以在 windows 系統上運行,雖然最終它還是運行在 linux 上面的,但是這個過程我們是無感知的。你可以能會問:我想在啟動的時候知道 redis.conf 可行不?答案是可行的,但是如果你對 Docker 不了解的話,可能會遇到一些坑,我就遇到了,因為我對 Docker 不是太了解,平時使用 docker 都是只需要傳入參數就好了,沒有傳過文件。關于啟動時指定配置文件,在 redis 鏡像那里有說明,但是是 linux 下面的,并不是 windows 系統下的 Docker 配置方式,所以我就百度到了下面這段命令

  1. docker run -v /d:/dockerdata/redis/config/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf 

這段命令就是一個坑,壓根就沒有,啟動這條命令,你將得到如下反饋:

顯然這條命令是沒有用的,當然這只是我個人認為,也許是我操作失誤,也許是我知識面不夠,如果朋友們發現錯誤還請多多指教,這里我就先當它是錯誤的,正確的做法是在 Docker 的宿主機上存放 redis.conf 文件,顯然 Docker 的宿主機并不是 windows 系統,而是啟動在 windows 系統上的虛擬機,所以我們需要進入到虛擬機里面,Docker Quickstart Terminal啟動默認界面并沒有正真的登錄到虛擬機,所以我們需要更改登錄方式,使用 docker-machine ssh 命令,如下圖所示:

 

Docker Quickstart Terminal 啟動方式 

這樣我們就進入到了真正的虛擬機里面,我們就在一臺虛擬機上操作了,跟我們在 linux 上的安裝一樣,我們先建立兩個目錄用來存放 Redis 配置:

  1. /usr/local/redis:存放redis.conf /usr/local/redis/data :存放持久化文件 

建立好兩個目錄后, 我們把 redis.conf 放在 /usr/local/redis 目錄下,使用下面這條 Docker 命令啟動 Redis 鏡像:

  1. docker run -p 6379:6379 -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/redis/data:/data --name dockerRedis -d redis  redis-server /usr/local/etc/redis/redis.conf 

這條 docker 啟動命令跟上面的有一點區別,有兩個參數我在這里說明一下:

  • -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf:這參數是將 /usr/local/redis/redis.conf 復制到 /usr/local/etc/redis/redis.conf 下
  • -v /usr/local/redis/data:/data:容器內持久化文件的存放位置也會映射到宿主機,換句話說在 /usr/local/redis/data 也會存放持久化文件

到此,Docker 安裝 Redis 的復雜操作也做完了,如果沒什么特別要求的話,使用簡單的 docker 啟動就好了,簡單方便,完全夠用了。

 

責任編輯:華軒 來源: 平頭哥的技術博文
相關推薦

2010-08-03 13:27:04

FlexBuilder

2010-01-08 10:52:17

Ubuntu VMwa

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2010-02-24 14:25:48

WCF地址

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2014-05-21 11:00:55

Windows Azu分布式部署

2024-06-06 08:32:52

.NET框架代碼

2010-09-07 11:09:59

2010-07-27 15:03:37

Flex ArrayC

2010-05-10 18:19:00

負載平衡技術

2024-09-20 11:32:28

.NET內存管理

2010-07-14 10:30:26

Perl多線程

2011-03-23 11:22:14

oracle dbli

2010-07-15 14:38:55

Perl eval函數

2011-04-02 09:48:38

深拷貝

2016-11-07 09:02:02

Malloc內存syscall
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品永久免费视频 | 欧美一区二区三区大片 | 夜操| 一区二区免费 | 精品久久精品 | 亚洲一区欧美一区 | 狠狠操av | 成人在线精品 | 久久久久久久一区二区三区 | 嫩草研究影院 | 成人一区二区三区 | 久久久久久成人网 | 国产综合在线视频 | 日日干日日操 | 国产精品1区2区 | 成人午夜视频在线观看 | 亚洲欧美日韩中文字幕一区二区三区 | 国产精品久久久久久久久免费桃花 | 水蜜桃久久夜色精品一区 | 久久9久 | 嫩草网 | 男人电影天堂 | 日韩久久久一区二区 | 伊人久久成人 | 亚州精品天堂中文字幕 | 一区二区三区在线免费观看 | 中文字幕不卡 | 亚洲精品九九 | 国产一区二区三区四区三区四 | 国产黄色大片网站 | 天堂网中文字幕在线观看 | 黄色片网此 | 亚洲97 | 欧洲视频一区二区 | 综合国产第二页 | 欧美精品久久久久久久久老牛影院 | 黑人一级黄色大片 | 黄色av一区| 亚洲欧美视频 | 欧美欧美欧美 | 亚洲狠狠|