新聞中心
Redis是一款開源的數(shù)據(jù)結(jié)構(gòu)存儲服務(wù)器,常用于緩存、消息隊列、計數(shù)器等應(yīng)用場景。在使用Redis時,可能會遇到需要更改端口的情況,比如端口被占用、需要在同一主機上啟動多個Redis實例等。本文將介紹Linux上如何更改Redis的端口設(shè)置。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都水處理設(shè)備等,在網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、WAP手機網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。
Step 1:停止Redis服務(wù)
在更改Redis端口前,需要先停止Redis服務(wù),可以執(zhí)行以下命令:
sudo systemctl stop redis
如果沒有開啟系統(tǒng)服務(wù),那么可以直接使用以下命令停止Redis:
redis-cli shutdown
Step 2:修改Redis配置文件
Redis的配置文件一般放在/etc/redis目錄下,文件名為redis.conf。使用vim或其他編輯器打開該文件,并找到以下配置項:
# If port 0 is specified Redis will not listen on a TCP socket.
# bind 127.0.0.1
port 6379
其中,port表示Redis監(jiān)聽的端口號,默認(rèn)為6379。將其修改為需要的端口號即可。
需要注意的是,如果需要開啟多個Redis實例,那么需要每個實例使用不同的端口號。同時,還需要修改daemonize配置項為yes,表示將Redis作為守護進程運行。
Step 3:保存文件并啟動Redis
在編輯器中保存redis.conf文件,并啟動Redis服務(wù)即可:
sudo systemctl start redis
如果沒有開啟系統(tǒng)服務(wù),可以使用以下命令啟動Redis:
redis-server /etc/redis/redis.conf
同時,可以使用以下命令查看Redis監(jiān)聽的端口是否已被修改:
redis-cli
輸入以下命令:
config get port
返回結(jié)果應(yīng)該為:
1) “port”
2) “新的端口號”
至此,完成了Redis端口的更改操作。
在Linux系統(tǒng)下,需要停止Redis服務(wù)、修改配置文件等步驟才能更改Redis端口。需要注意的是,不同實例的端口號需要保持唯一,否則會出現(xiàn)端口被占用的情況。在更改Redis配置文件時,還需要注意Redis作為守護進程運行的配置項daemonize。
相關(guān)問題拓展閱讀:
- linux redis 怎么設(shè)置集群
- linux 怎樣安裝redis
- redis啟動,停止
linux redis 怎么設(shè)置集群
這方面的資料網(wǎng)上挺多的,我找的這篇
robe.com/docker-redis.html你可以看下是不是能幫助到您。
整個集群可以分為一個master,N個slave,M個sentinel,本次以2個slave和3個sentinel為例:
首先增加redis.conf
##redis.conf
##redis-0,默認(rèn)為master
port $redis_port
##授權(quán)密碼,請各個配置保持一致租歷
##暫且禁用指令重命名
##rename-command
##開啟AOF,禁用snapshot
appendonly yes
#slaveof redis-master $master_port
slave-read-only yes
默認(rèn)為master,#slaveof注釋去掉后變?yōu)閟lave,這里固化了master的域名redis-master。
增加sentinel.conf
port $sentinel_port
dir “hljs-string”鄭簡”/tmp”
##sentinel監(jiān)控的redis的名字、IP和端口,最后一個數(shù)字是sentinel做決策的時候需要投贊同票的最少的sentinel的數(shù)量。
sentinel “hljs-instruction” monitor mymaster redis-master $master_port 2
##選項指定了在執(zhí)行故障轉(zhuǎn)移時, 最多可以有多少個從服務(wù)器同時對新的主服務(wù)器進行同步, 這個數(shù)字越小, 完成故障轉(zhuǎn)移所需的時間就越長。
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel current-epoch 1
增加啟動腳本,根據(jù)入?yún)⑴袛鄦觤aster,slave,sentinel
cd /data
redis_role= “hljs-variable”$1
echo “hljs-variable”$redis_role
if ; then
echo “hljs-string””master”
sed -i “hljs-string””s/\$redis_port/ “hljs-variable”$redis_port/g” redis.conf
redis-server /data/redis.conf
elif ; then
echo “hljs-string””slave”
sed -i “hljs-string””s/\$redis_port/ “hljs-variable”$redis_port/g” redis.conf
sed -i “hljs-string””s/#slaveof/slaveof/g” redis.conf
sed -i “hljs-string””s/\$master_port/ “hljs-variable”$master_port/g” redis.conf
redis-server /data/redis.conf
elif ; then
echo “hljs-string””sentinel”
sed -i “hljs-string””s/\$sentinel_port/ “hljs-variable”$sentinel_port/g” sentinel.conf
sed -i “hljs-string””s/\$master_port/ “hljs-variable”$master_port/g” sentinel.conf
redis-sentinel /data/sentinel.conf
else
echo “hljs-string””unknow role!”
fi #ifend
其中$redis_port和$master_port,$sentinel_port都是取自環(huán)境變量,通過Docker啟動時候傳入。
編寫Dockerfile
FROM redis:3-alpine
MAINTAINER voidman voidman
COPY “bash”Shanghai /etc/localtime
COPY “bash”redis.conf /data/redis.conf
COPY “bash”sentinel.conf /data/sentinel.conf
COPY “bash”start.sh /data/start.sh
RUN “bash”chmod +x /data/start.sh
RUN “bash”chown redis:redis /data/*
ENTRYPOINT “bash”
CMD “bash”
選取redis-alpine鏡像作為基礎(chǔ)鏡像,因為它非常小,只有9M,修改時區(qū)和把一些配置拷貝進去后,變更下權(quán)限和用戶組,因為基礎(chǔ)鏡像是redis用戶組。ENTRYPOINT和CMD組合,默認(rèn)以master方式啟動。
build完成后,鏡像只有15M。
redis.conf 配置文件說明
daemonize no –是否把redis-server啟動在后臺,默認(rèn)是“否”。若改成yes
pidfile /var/run/redis.pid –當(dāng)Redis以守護進程方式運行時,Redis默認(rèn)會把pid寫入/var/run/redis.pid文件,可以通過pidfile指定
prot指定Redis監(jiān)聽端口,默認(rèn)端口為6379
bind 10.252.1.14 —綁定的主機地址
timeout 0 —當(dāng) 客戶端閑置多長時間后關(guān)閉連接,如果指定為0,表示關(guān)閉該功能
loglevel notice —指定日志記錄級別,Redis總共支持四個級別:debug、verbose、notice、warning,默認(rèn)為verbose
logfile /mnt/redis/log/redis.log –日志記錄方式,默認(rèn)為標(biāo)準(zhǔn)輸出,如果配置Redis為守護進程方式運行,而這里又配置為日志記錄方式為標(biāo)準(zhǔn)輸出,則日志將會發(fā)送給/dev/null
databases 16 設(shè)置數(shù)據(jù)庫的數(shù)量,默認(rèn)數(shù)據(jù)庫為0,可以使用SELECT 命令在連接上指定數(shù)據(jù)庫id
save指定在多長時間內(nèi)敬虛,有多少次更新操作,就將數(shù)據(jù)同步到數(shù)據(jù)文件,可以多個條件配合
Redis默認(rèn)配置文件中提供了三個條件:
save 900 1
save
save
分別表示900秒(15分鐘)內(nèi)有1個更改,300秒(5分鐘)內(nèi)有10個更改以及60秒內(nèi)有10000個更改
rdbcompression yes –指定存儲至本地數(shù)據(jù)庫時是否壓縮數(shù)據(jù),默認(rèn)為yes,Redis采用LZF壓縮,如果為了節(jié)省CPU時間,可以關(guān)閉該選項,但會導(dǎo)致數(shù)據(jù)庫文件變的巨大
dbfilename dump.rdb –指定本地數(shù)據(jù)庫文件名,默認(rèn)值為dump.rdb
dir /mnt/redis/data/ –指定本地數(shù)據(jù)庫存放目錄
slaveof — 設(shè)置當(dāng)本機為slav服務(wù)時,設(shè)置master服務(wù)的IP地址及端口,在Redis啟動時,它會自動從master進行數(shù)據(jù)同步
masterauth –當(dāng)master服務(wù)設(shè)置了密碼保護時,slav服務(wù)連接master的密碼
requirepass foobared –設(shè)置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時需要通過AUTH 命令提供密碼,默認(rèn)關(guān)閉
maxclients設(shè)置同一時間更大客戶端連接數(shù),默認(rèn)無限制
maxmemory —指定Redis更大內(nèi)存限制,Redis在啟動時會亮備燃把數(shù)據(jù)加載到內(nèi)存中,達到更大內(nèi)存后,Redis會先嘗試清除已到期或即將到期的Key,當(dāng)此方法處理 后,仍然到達更大內(nèi)存設(shè)置,將無法再進行寫入操作,但仍然可以進行讀取操作。Redis新的vm機制,會把Key存放內(nèi)存,Value會存放在swap區(qū)
appendonly no –指定是否在每次更新操作后進行日志記錄,Redis在默認(rèn)情況下是異步的把數(shù)據(jù)寫入磁盤,如果不開啟,可能會在滾搜斷電時導(dǎo)致一段時間內(nèi)的數(shù)據(jù)丟失。因為 redis本身同步數(shù)據(jù)文件是按上面save條件來同步的,所以有的數(shù)據(jù)會在一段時間內(nèi)只存在于內(nèi)存中。默認(rèn)為no
appendfilename appendonly.aof —指定更新日志文件名,默認(rèn)為appendonly.aof
appendfsync everysec —指定更新日志條件,共有3個可選值: no:表示等操作系統(tǒng)進行數(shù)據(jù)緩存同步到磁盤(快) . always:表示每次更新操作后手動調(diào)用fsync()將數(shù)據(jù)寫到磁盤(慢,安全). everysec:表示每秒同步一次(折衷,默認(rèn)值)
vm-enabled no —指定是否啟用虛擬內(nèi)存機制,默認(rèn)值為no,簡單的介紹一下,VM機制將數(shù)據(jù)分頁存放,由Redis將訪問量較少的頁即冷數(shù)據(jù)swap到磁盤上,訪問多的頁面由磁盤自動換出到內(nèi)存中(在后面的文章我會仔細(xì)分析Redis的VM機制)
vm-swap-file /tmp/redis.swap —虛擬內(nèi)存文件路徑,默認(rèn)值為/tmp/redis.swap,不可多個Redis實例共享
vm-max-memory 0 將所有大于vm-max-memory的數(shù)據(jù)存入虛擬內(nèi)存,無論vm-max-memory設(shè)置多小,所有索引數(shù)據(jù)都是內(nèi)存存儲的(Redis的索引數(shù)據(jù) 就是keys),也就是說,當(dāng)vm-max-memory設(shè)置為0的時候,其實是所有value都存在于磁盤。默認(rèn)值為0
vm-page-sizeRedis swap文件分成了很多的page,一個對象可以保存在多個page上面,但一個page上不能被多個對象共享,vm-page-size是要根據(jù)存儲的 數(shù)據(jù)大小來設(shè)定的,作者建議如果存儲很多小對象,page大小更好設(shè)置為32或者64bytes;如果存儲很大大對象,則可以使用更大的page,如果不 確定,就使用默認(rèn)值
vm-pages設(shè)置swap文件中的page數(shù)量,由于頁表(一種表示頁面空閑或使用的bitmap)是在放在內(nèi)存中的,,在磁盤上每8個pages將消耗1byte的內(nèi)存。
vm-max-threads 4 —設(shè)置訪問swap文件的線程數(shù),更好不要超過機器的核數(shù),如果設(shè)置為0,那么所有對swap文件的操作都是串行的,可能會造成比較長時間的延遲。默認(rèn)值為4
glueoutputbuf yes —設(shè)置在向客戶端應(yīng)答時,是否把較小的包合并為一個包發(fā)送,默認(rèn)為開啟
hash-max-zipmap-entries指定在超過一定的數(shù)量或者更大的元素超過某一臨界值時,采用一種特殊的哈希算法
hash-max-zipmap-value指定在超過一定的數(shù)量或者更大的元素超過某一臨界值時,采用一種特殊的哈希算法
activerehashing yes —指定是否激活重置哈希,默認(rèn)為開啟(后面在介紹Redis的哈希算法時具體介紹)
include /path/to/local.conf —指定包含其它的配置文件,可以在同一主機上多個Redis實例之間使用同一份配置文件,而同時各個實例又擁有自己的特定配置文件
主服務(wù)器配置
mkdir /mnt/redis/redisDB
mkdir /mnt/redis/redisLog
vi /etc/redis/redis.conf
dbfilename /mnt/redisDB/dump.rdb –修改磁盤上保存數(shù)據(jù)庫文件的位置
loglevel warning –修改日志級別
logfile /mnt/redis/redisLog/redis.log –修改日志文件的位置
從機配置
cp redis.conf /etc/redis_slave.conf
vim redis_slave.conf
修改其中的一行
配置master的ip地址和redis-server的端口。
slaveof –設(shè)置主從服務(wù)器的主服務(wù)器的地址和端口
daemonize no –是否把redis-server啟動在后臺,默認(rèn)是“否”。若改成yes,會生成一個pid文件。
主從測試
主機: redis-server /etc/redis.conf
從機: redis-server /etc/redis_slave.conf
3.1 測試
在主機上啟動redis客戶端:
ssh 192.168.1.1
redis-cli
>set k1 v1
>get k1
“v1”
.登陸從機,并在從機上啟動客戶端:
ssh 192.168.1.2
redis-cli
>get k1
“v1”
可以看到redis已經(jīng)把數(shù)據(jù)同步過來了。
linux 怎樣安裝redis
獲取Redis
1、伏裂通過官網(wǎng)
獲取穩(wěn)定版源碼包下載地址;
2、通過wget
下載 源碼包;
編譯安裝Redis
1、解壓源碼安裝包,通過tar -xvf redis-3.0.2.tar.gz解壓源碼,速度相當(dāng)快;
2、進入解壓后的目錄,執(zhí)行make編譯源碼;
make命令執(zhí)行完成后,會在src目錄下生成6個可執(zhí)行文件,分別是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump、redis-sentinel。
3、執(zhí)行make install安裝,或者通過make PREFIX=/usr/local/redis install指定安裝目錄。這里默認(rèn)安裝,默認(rèn)將之前生成的可執(zhí)行文件拷貝到/usr/local/bin目錄下;
END
配置運行
修改配置文件
1、將源碼目錄下redis配置文件redis.conf拷貝到/etc/redis目錄下。
2、修改配置項,根據(jù)需要;如果不修改,使用默認(rèn)配置也可以;
啟動服務(wù):
查看端口是否被占用:netstat
–ntlp
|grep
方式一:通過命脊廳前令redis-server 啟動,可在命令后加上`&`號使redis以后臺程序方式運行;
方式二:通過指定配置文件啟動;redis-server /etc/redis/redis.conf
默認(rèn)安裝的路徑已經(jīng)加入環(huán)境變量中,可直接在命令行執(zhí)行命令;
命令客戶端檢測鏈接
1、連接之前可以先檢測服務(wù)是否啟動;
2、測試啟動 redis-cli ping 返回PONG,啟動成功。
停止Redis:
關(guān)閉服務(wù)
redis-cli shutdown
如果非默認(rèn)端口,可指定端口:
redis-cli -p 6380 shutdown
簡單操作:
1、兩種連接方式:
1:window DOS方式:tentel主櫻清機IP端口號(默認(rèn)為127.0.0.1:6379)
2:linux客戶端方式:redis-cli 主機IP 端口號(默認(rèn)為127.0.0.1 6379)
2、命令行操作:
#redis-cli
redis 127.0.0.1:6379> set name clj
OK
redis 127.0.0.1:6379> get name
“clj”
CentOS/RedHat:1.yuminstallredis-y2.serviceredisstartUbuntu:1.sudoapt-getinstallredis-server-y2.sudo/喚滑虛和燃etc/init.d/讓清redis-serverstart
redis啟動,停止
1.直接啟動
進入redis根目錄,執(zhí)行命令:
#加上‘&’號使redis以后臺程序方式運行
./redis-server &
2.通過指定配置文件啟動
可以為redis服務(wù)啟動指定配置文件,例如配余枝置為/etc/redis/6379.conf
進入redis根目錄,輸臘兆入命令:
./redis-server /etc/redis/6379.conf
#如果更改了端口,使用`redis-cli`客戶輪毀租端連接時,也需要指定端口,例如:
redis-cli -p 6380
后臺方式啟動
修改redis.conf,把daemonize no修改成daemonize yes
停止:redis-cli shutdown
查找進程號
ps -ef | grep redis
殺進程
kill -6 pid
redis快照問題錯誤信息如下:
MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
排查與解決步驟:
進入redis使用info命令查看,會發(fā)現(xiàn)最后一次快照失敗的信息
rdb_last_bgsave_status:err
處理方法:
1.進入redis臨時關(guān)閉配置(如果需要,要再redis.conf上寫上該配置,不然下次重啟redis配置會失效)
config set stop-writes-on-bgsave-error no
關(guān)于linux redis 更改端口的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動、聯(lián)通機房等。
當(dāng)前文章:LinuxRedis如何更改端口(linuxredis更改端口)
鏈接地址:http://fisionsoft.com.cn/article/djijdss.html


咨詢
建站咨詢
