mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群
現在一般的項目都會用到redis做緩存,也不免有老鐵沒用過,我就一起說下吧。
redis
- 官網
https://redis.io/
Redis是一個開源(BSD許可)的內存數據結構存儲,用作數據庫、緩存和消息代理。它支持諸如字符串、散列、列表、集合、帶有范圍查詢的排序集、位圖、日志、帶有半徑查詢的地理空間索引和流之類的數據結構。Redis具有內置的復制、Lua腳本、LRU驅逐、事務和不同級別的磁盤持久性,并通過Redis Sentinel和Redis Cluster自動分區提供高可用性。
- 歷史
2008年,意大利一家創業公司Merzia的創始人Salvatore Sanfilippo為了避免MySQL的低性能,親自定做一個數據庫,并于2009年開發完成,這個就是Redis。
短短幾年,用戶數據量猛增。國內如新浪微博、街旁和知乎等,國外如GitHub、暴雪等,都是Redis的用戶。世界上最大規模的Redis緩存,就是新浪微博團隊打造的。熱點新聞的時候。Redis可以達到最多每秒10萬的讀寫。
- 高速緩存介紹
微信紅包就是很好的例子,在發紅包的時候,紅包信息就保存在緩存中,搶的人也是從高速緩存中取。春節當天幾個億的人來搶也保持系統的穩定。
- Redis集群介紹
Redis目前的集群方案為以下幾種:
- RedisCluster
- 本次搭建的Redis節點的示意圖
- 主從同步
上邊說過,RedisCluster的數據是分片存儲的,如果redis掛了就會丟失一部分的數據。為了避免這個問題的產生,就必須引入主從同步的機制
- Redis集群高可用
- 為什么Redis不搭建負載均衡
因為本身前后端分離項目,請求后端的時候,后端對請求已經做了負載均衡所以Redis不需要做負載均衡。
搭建集群
應用IP地址服務配置安裝應用安裝方式docker-mysql192.168.66.101docker-redis-cluster雙核 8g內存docker-redis-clusterdocker
(1). 虛擬機vagrant講述安裝的步驟
vagrant up(2).機器window/mac開通遠程登錄root用戶下
su -# 密碼vagrant#設置 PasswordAuthentication yesvi /etc/ssh/sshd_configsudo systemctl restart sshd- 創建文件夾,配置
- redis.conf
配置了5個地方
以后臺進程運行
開啟集群
超時時間
開啟AOF模式,保存文件的形式
認證密碼
集群配置文件
直接看github我提交的源碼吧一共要創建6個redis集群
- 創建容器(r1)
想加上安全驗證,但是不生效,查了下daemonize yes,他的作用是是否開啟守護進程模式,在該模式下,redis會在后臺運行,并將進程pid號寫入至redis.conf選項pidfile設置的文件中,此時redis將一直運行,除非手動kill該進程。所以進入這個容器內手動選擇加載配置文件。
docker run -it -d -v /root/redis-cluster/r1/redis.conf:/etc/redis/redis.conf --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 zhugeaming1314/redis bash- 配置啟動
- 創建容器(r2)
- 配置啟動
- 創建容器(r3)
- 配置啟動
- 創建容器(r4)
- 配置啟動
- 創建容器(r5)
- 配置啟動
- 創建容器(r6)
- 配置啟動
redis-trib.rb
redis內自帶集群工具redis-trib.rb,操作redis-trib需要很多指令很麻煩。建議使用我提供的鏡像,里面什么都裝好了老鐵就根據我的命令操作就可以了 。
- 創建集群命令
- 查看集群信息
!/upload-images.jianshu.io/upload_images/11223715-0123418e8224c25c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 安裝集群的時候報的錯誤
can't connect to node 172.19.* redis.conf文件
redis集群密碼設置
- 密碼設置(推薦)
方式一:修改所有Redis集群中的redis.conf文件加入:
masterauth idig8.comrequirepass idig8.com說明:這種方式需要重新啟動各節點
方式二:進入各個實例進行設置:
./redis-cli -c -p 6379 config set masterauth idig8.comconfig set requirepass idig8.com config rewrite之后分別使用./redis-cli -c -p 6379,./redis-cli -c -p 6379…..命令給各節點設置上密碼。
注意:各個節點密碼都必須一致,否則Redirected就會失敗, 推薦這種方式,這種方式會把密碼寫入到redis.conf里面去,且不用重啟。
用方式二修改密碼,./redis-trib.rb check 172.19.0.2:6379執行時可能會報[ERR] Sorry, can't connect to node 172.19.0.2:6379,因為6379的redis.conf沒找到密碼配置。
- 設置密碼之后如果需要使用redis-trib.rb的各種命令
如:./redis-trib.rb check 127.0.0.1:6379,則會報錯ERR] Sorry, can’t connect to node 127.0.0.1:6379
解決辦法:vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb,然后修改passord
class Client DEFAULTS = { :url => lambda { ENV["REDIS_URL"] }, :scheme => "redis總結
以上是生活随笔為你收集整理的mac os 开启redis_高并发大流量,总会想到它!来一起通过docker搭建redis集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kaggle学习
- 下一篇: P5714 【深基3.例7】肥胖问题--