網站首頁 編程語言 正文
前言
環境:CentOS7下安裝Redis集群,默認已安裝好5.0及以上版本,操作包括:
- Redis-server環境變量
- 配置配置集群的
- Redis.confRedis主從配置和啟動
- 測試主從機的數據一致性和讀寫分離
一、Redis-server環境變量
啟動redis服務報錯:
-bash: redis-server: command not found
原因:
沒有配置對應命令,類似于window的環境變量,所以命令找不到
解決辦法:
將安裝目錄下的redis-server執行文件路徑配置到系統執行命令里
ln -s /usr/local/redis/redis-4.0.9/src/redis-server /usr/bin/redis-server
其中
/usr/local/redis/redis-4.0.9/src/redis-server 為安裝目錄下的redis-server服務文件地址
二、配置集群的Redis.conf
我們在一臺服務器上開啟三個Redis服務,模擬redis集群,一主兩從,結構如下 :
端口信息為7001,7002,7003(若使用的服務器記得開啟端口的防火墻)
1.先創建7001~7003的三個目錄,將配置文件放入對應目錄并進行配置
?Redis.conf配置:
- bind:綁定的 IP,默認是本地,可以指定 IP,表示只有指定的 IP 才可訪問,注釋掉的話則全部 IP 都可訪問。(我們是本地開三個服務,綁定不用動,如果是分布式就0.0.0.0)
- protected-mode?:保護模式(無密碼 + 無綁定 = 本地訪問),默認開啟。這個不用動
- port?:端口,改為700x
- daemonize :表示以守護進程的方式運行,默認 no,需要改為 yes,避免關閉客戶端后,redis 也跟著關閉。我們實驗用的話,可以關掉
- requirepass :密碼,默認沒有密碼,如果需要則設置密碼
[root@VM-0-4-centos ~]# redis-cli -p 6379 # 獲取密碼 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" # 設置密碼 >127.0.0.1:6379> config set requirepass 12455 OK # 重新關閉客戶端再進入時,輸入一下命令,則顯示無權限 127.0.0.1:6379> keys * (error) NOAUTH Authentication required. # 輸入密碼 127.0.0.1:6379> auth 12455 OK
三、配置主從服務器
有臨時和永久兩種模式:
- 修改配置文件(永久生效)
- 在redis.conf中添加一行配置:slaveof <masterip> <masterport>
- 使用redis-cli客戶端連接到redis服務,執行slaveof命令(重啟后失效):
slaveof <masterip> <masterport>
四、啟動三臺Redis服務器
[root@localhost bin]# redis-server /myredis/redis6379.conf [root@localhost bin]# redis-server /myredis/redis6380.conf [root@localhost bin]# redis-server /myredis/redis6381.conf [root@localhost bin]# ps -ef | grep redis root 2999 1 0 11:58 ? 00:00:00 redis-server *:6379 root 3013 1 0 11:59 ? 00:00:00 redis-server *:6380 root 3019 1 0 11:59 ? 00:00:00 redis-server *:6381 root 3025 2189 0 11:59 pts/0 00:00:00 grep --color=autoredis
?使用命令登錄三個redis
redis -p <port> -a 密碼 指定端口號登錄redis
執行下列操作以測試:
- 利用redis-cli連接7001,執行
set num 123
- 利用redis-cli連接7002,執行
get num
,再執行set num 666
- 利用redis-cli連接7003,執行
get num
,再執行set num 888
我們對從機進行寫操作發現報錯
對主機進行寫操作,從機可以獲取
可以發現,只有在7001這個master節點上可以執行寫操作,7002和7003這兩個slave節點只能執行讀操作。
原文鏈接:https://blog.csdn.net/qq_48826531/article/details/126943423
相關推薦
- 2022-07-29 Ubuntu中的sudo和su命令介紹_linux shell
- 2022-05-06 C++提取文件名與提取XML文件的方法詳解_C 語言
- 2022-09-23 Android?如何獲取傳感器的數據方法詳解_Android
- 2022-03-31 Python機器學習應用之基于線性判別模型的分類篇詳解_python
- 2022-12-16 Python中選擇結構實例講解_python
- 2022-08-26 Python中def()函數的實戰練習題_python
- 2022-03-10 使用.Net6中的WebApplication打造最小API_自學過程
- 2022-09-07 教你應用?SOLID?原則整理?React?代碼之單一原則_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支