Linux服务升级:Twemproxy 升级 Redis代理

目录

 一、实验

1.环境

2.多实例Redis部署

3.Twemproxy 升级Redis代理


 

 一、实验

1.环境

(1)主机

表1  主机

系统版本软件IP备注
CentOS7.9Twemproxy192.168.204.200

   Redis代理

  Redis127.0.0.1:6379第一个Redis实例
  Redis127.0.0.1:6380第二个Redis实例
  Redis127.0.0.1:6381第三个Redis实例

(2)Termius连接

99f0db4011ba4ecf8df50a08a9a4754c.png

成功:

cb0a5ea3a55341a6be0d012d926b8808.png

(3)查看系统版本

 cat /etc/os-release

3f8f4db4a6584d2cb50cf0efe96b5a91.png

 

2.多实例Redis部署

(1)单实例Redis部署

可以参考本人博客:

数据库应用:Redis安装部署-CSDN博客

(2)第二个实例Redis部署

#执行软件包提供的install_server.sh 脚本文件,设置Redis服务所需要的相关配置文件
 cd /opt/redis-5.0.7/utils
 ./install_server.sh
 .......#一直回车
 ​
 Please select the redis executable path [] /usr/local/redis/bin/redis-server
 #这里默认为/usr/local/bin/redis-server,需要手动修改为/usr/local/redis/bin/redis-server,注意要一次性正确输入
 ​
 ​
 ---------------------- 虚线内是注释 ----------------------------------------------------
 Selected config:
 Port: 6380                                      #默认侦听端口为6379
 Config file: /etc/redis/6380.conf               #配置文件路径
 Log file: /var/log/redis_6380.log               #日志文件路径
 Data dir : /var/lib/redis/6380                  #数据文件路径
 Executable: /usr/local/redis/bin/redis-server   #可执行文件路径
 Cli Executable : /usr/local/bin/redis-cli       #客户端命令工具

0fdbc1cc46be49298906efb4e2bacb74.png

#当install_server.sh 脚本运行完毕,Redis 服务就已经启动,默认监听端口为6379
 netstat -natp | grep redis

7a090fdfd17f4341b54ba1cd74ebc0f7.png(3)第三个实例Redis部署

#执行软件包提供的install_server.sh 脚本文件,设置Redis服务所需要的相关配置文件
 cd /opt/redis-5.0.7/utils
 ./install_server.sh
 .......#一直回车
 ​
 Please select the redis executable path [] /usr/local/redis/bin/redis-server
 #这里默认为/usr/local/bin/redis-server,需要手动修改为/usr/local/redis/bin/redis-server,注意要一次性正确输入
 ​
 ​
 ---------------------- 虚线内是注释 ----------------------------------------------------
 Selected config:
 Port: 6381                                      #默认侦听端口为6379
 Config file: /etc/redis/6381.conf               #配置文件路径
 Log file: /var/log/redis_6381.log               #日志文件路径
 Data dir : /var/lib/redis/6381                  #数据文件路径
 Executable: /usr/local/redis/bin/redis-server   #可执行文件路径
 Cli Executable : /usr/local/bin/redis-cli       #客户端命令工具

a60a216fbd2449509392afc12b13f79a.png

#当install_server.sh 脚本运行完毕,Redis 服务就已经启动,默认监听端口为6379
 netstat -natp | grep redis

74d4d33a282245e196021bba24e5f05b.png

3.Twemproxy 升级Redis代理

(1)安装git

yum -y install git

86c7636799d14ce48d1fbe43072d42d0.png

(2) 创建目录

mkdir soft

88e90233fbd94771b0dd78b1927e860b.png

(3)下载源码

cd ~/soft
git clone https://github.com/twitter/twemproxy.git

be85c03270934a2b934786d3a47f81bd.png

(4)安装automakelibtool

yum -y install automake libtool

4fa138dd1fc24d64a71ba351d1dcaf75.png

(5) 在项目目录中使用以下命令重新生成 configure 脚本

cd ~/soft/twemproxy/
autoreconf -fvi

5be075845c1743169ccf94dbda955e29.png

查看

09d0123f69c44a5a8b5fef814961dd01.png

(6)执行configure

./configure

4b3ccc3b38f744e18296a0a0edfb26b9.png

完成:

c79506ba191a4b89b2e41deb29b3a7dd.png

(7)执行make

 

c9eeb9fe49a14ac49310b1ff1c1aacc1.png

完成:

make

3a1497a405c34bc393c6538d61d5b7e5.png

(8)配置Twemproxy

实现全局任意地方执行

cd ~/soft/twemproxy/src

cp nutcracker /usr/bin/

4f10fc18f1d244d1982d03f47f5d1818.png

(9)创建目录

用来存放相关配置文件

mkdir /etc/nutcracker 

93d84fd9a605418e844db6948546e6ed.png

(10)复制文件

将源码目录scripts下的nutcracker.init文件复制到/etc/init.d下改名为twemproxy

cd ~/soft/twemproxy/scripts/
cp nutcracker.init /etc/init.d/twemproxy

5c776595af96440cb5884faf7ed8852a.png

(11)授权

给twemproxy执行权限

chmod +x /etc/init.d/twemproxy

8ddc7ff99c8348afa1b8a038e30cce6e.png

(12)拷贝文件

nutcracker相关配置文件拷贝到刚创建的/etc/nutcracker目录下

cd ~/soft/twemproxy/conf

cp * /etc/nutcracker

(13)备份

cd /etc/nutcracker

cp nutcracker.yml nutcracker_bak.yml 

1730be9bfa1d456a8a3c36fa2505cee3.png

(14)修改配置文件

vim nutcracker.yml

cc52b2cfbd364778a14a73892eb9db8d.png

修改前:

1303446fe5314d55a01668323f96be5f.png

光标移动到beta配置上方空行出 按下d键+(大写)G键

完成删除

8ceaa3f4f4f24d8ba710cfe840d46a0a.png

修改

alpha:
  listen: 127.0.0.1:22121
  hash: fnv1a_64
  distribution: ketama
  auto_eject_hosts: true
  redis: true
  server_retry_timeout: 2000
  server_failure_limit: 1
  servers:
   - 127.0.0.1:6379:1
   - 127.0.0.1:6380:1
   - 127.0.0.1:6381:1

ae5b92cafea94d7fb15c1cd68ae8b1a0.png

(15)强制关闭当前所有Redis服务

查看进程

ps -ef | grep redis

0ce1bf3dc62c441e8ece24f5c258450f.png

强制关闭进程

kill -9 PID

b8518249cf494c1dbb96c8b03a54e0e2.png

再次查看进程,显示已关闭

63f0533948344529a3ed64303a67f2db.png

(16)Termius新开3个窗口

第一个窗口执行

cd /usr/local/redis/bin/

redis-server --port 6379

3e11a8a8bc4a4f6da48c392f55776c08.png

 第二个窗口执行

cd /usr/local/redis/bin/

redis-server --port 6380

4b63f9c1508547e58ae0cc992283ce3a.png

  第三个窗口执行

cd /usr/local/redis/bin/

redis-server --port 6381

fd703956c48e4a3cadd3b5a05831743c.png

(17)开启twemproxy代理的服务

初始窗口执行

service twemproxy start

e2d6d6af0d1e411a90e16810a9e5a81d.png

(18)新开Redis_Twemproxy客户端窗口

登录

redis-cli -p 22121

 

0cd552ba49c74980b681301febc30e15.png

执行set操作(写入键值对)

127.0.0.1:22121> set cicd 123
OK
127.0.0.1:22121> set devops 123
OK
127.0.0.1:22121> set kubernetes 123
OK

74a34738a9274af8a4885f2e83ee0a8f.png

(19)分别进入三个Redis实例(set操作实现均匀分布)

查看第一个实例

redis-cli  -p 6379
keys *
exit

ac5ad09c7c254c4bb7de7662e7386b93.png

查看第二个实例

redis-cli  -p 6380
keys *
exit

2ec78c41307d4412bc3d9d1b4d7463c8.png

查看第三个实例

redis-cli  -p 6381
keys *
exit

34453988602b46e699b5036dd2c0de24.png

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/643686.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

别被“涨价“带跑,性价比才是消费真理

文章来源:全食在线 “再不好好赚钱,连方便面也吃不起了。”这是昨天在热搜下,一位网友的留言。而热搜的内容,正是康师傅方便面即将涨价的消息。 01 传闻初现 昨天上午,朋友圈就有人放出康师傅方便面要涨价的消息&am…

Py之llama-parse:llama-parse(高效解析和表示文件)的简介、安装和使用方法、案例应用之详细攻略

Py之llama-parse:llama-parse(高效解析和表示文件)的简介、安装和使用方法、案例应用之详细攻略 目录 llama-parse的简介 llama-parse的安装和使用方法 1、安装 2、使用方法 第一步,获取API 密钥 第二步,安装LlamaIndex、LlamaParse L…

从ZooKeeper切换到ClickHouse-Keeper,藏着怎样的秘密

本文字数:7772;估计阅读时间:20 分钟 作者:博睿数据 李骅宸(太道)& 小叮当 本文在公众号【ClickHouseInc】首发 本系列前两篇内容: 从ES到ClickHouse,Bonree ONE平台更轻更快&a…

API攻击呈指数级增长,如何保障API安全?

从远程医疗、共享汽车到在线银行,实时API是构建数字业务的基础。然而,目前超过90%的基于Web的网络攻击都以API端点为目标,试图利用更新且较少为人所知的漏洞,而这些漏洞通常是由安全团队未主动监控的API所暴露,致使API…

【设计模式】JAVA Design Patterns——Callback(回调模式)

🔍目的 回调是一部分被当为参数来传递给其他代码的可执行代码,接收方的代码可以在一些方便的时候来调用它。 🔍解释 真实世界例子 我们需要被通知当执行的任务结束时。我们为调用者传递一个回调方法然后等它调用通知我们。 通俗描述 回调是一…

K8s 部署prometheus

文章目录 K8s 部署prometheuskube-prometheus 部署部署流程安装卸载补充 K8s 部署prometheus kube-prometheus 部署 kube-prometheus 是 github 上开源的整合了 prometheus alertmanager granfana 等监控工具的项目,github地址 如果github 访问不了的也可以选择 g…

忘记“也是一门学问:机器如何忘记自己学到的知识?

在信息时代,我们常常希望人工智能能够学到更多的知识,变得更加智能。但你是否想过,有时候让机器"忘记"一些它学到的东西,也是一件很重要的事? 随着用户隐私保护意识的提高和相关法律法规的出台,…

张大哥笔记:穷人都在拼命挣钱,而富人都在努力让自己更值钱

最近行业大佬,纷纷网红化,比如周鸿祎,雷军,刘强东纷纷下场! 大佬当网红,图啥?当然是图钱了。 大佬都很精的,他们老早就运用媒体的传播杠杆,把自己热度炒起来。 在不断…

Opencompass模型评测教程

模型评测 模型评测非常关键,目前主流的方法主要可以概括为主观评测和客观评测,主观评测又可以分为两种形式:人工判断或者和模型竞技场。客观评测一般采用评测数据集的形式进行模型评测。本教程使用Opencompass工具进行对Internlm2-7b模型进行…

通过Wirtinger流进行相位恢复:理论与算法

文章目录 1. 简介2. 算法描述2.1 初始化(Initialization)2.2 迭代更新(Iterative Updates)2.3 学习率调整(Learning Rate Adjustment) 3. 代码实现3.1 一维信号测试 (Gaussian model)3.2 一维信号测试 (Coded diffract…

利用天气API接口自己DIY一个预报小管家

天气预报查询API 是一种实用的日常工具,它通过编程方式为开发者提供实时的天气数据。开发者可以通过简单的代码调用,与天气预报服务提供商进行交互,获取特定地区的天气信息,如温度、湿度、风速、风向、降水量等,以及未…

K8S集群中Yaml文件详解

目录 一、Yaml概述 二、Yaml基本语法 三、Yaml数据结构 四、K8S资源清单描述方法 五、api资源版本标签 六、Yaml文件示例详解 1.deployment.yaml文件详解 2.Pod yaml文件详解 3.Service yaml文件详解 七、Yaml文件相关操作 1.试运行 2.生成yaml格式 3.生成json格式…

基于Python网络舆情分析系统实现

基于Python网络舆情分析系统实现 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 首页展示 用户在输入正确的域名后即可访问本系统,不过用户在注册用户之前只能访问系统公告及…

驾驭数字前沿--欧盟商会网络安全大会活动

本次安策参加由欧盟商会组织举办的--超越 2024 年网络安全大会:驾驭数字前沿大会(上海),安策在大会上做了《2024数据威胁报告主题报告》并希望携手各行业伙伴,共同驾驭数字前沿的波涛,共创安全、合规、高效的数字未来。 【安策活动…

【okhttp】小问题记录合集

can’t create native thread 问题描述 OkHttpClient 每次使用都new创建,造成OOM,提示can’t create native thread… 问题分析 没有将OkHttpClient单例化. 每个client对象都有自己的线程池和连接池,如果为每个请求都创建一个client对象&a…

刷题之和为k的数组(leetcode)

和为k的数组 这个思路一直想不到&#xff0c;参考了官方答案&#xff0c;哈希表记录[0,i]的和 class Solution { public:int subarraySum(vector<int>& nums, int k) {int result0;unordered_map<int, int>map;int pre0;//前缀和&#xff08;前面的和&…

【Qt 学习笔记】Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | Qt窗口介绍 | QMainwindow类及各组件介绍 文章编号&#xff…

图数据库助力供应链柔性升级

导读 当今市场环境受短视频等流媒体影响&#xff0c;任何风险事件在社交网络中传播速度极其迅速&#xff0c;留给企业的反应时间按分秒计&#xff0c;传统供应链的年度计划面对剧烈变化的市场环境已失去意义。此外&#xff0c;受近年局势动荡的影响&#xff0c;市场需求和供应…

为了性能,放弃tft_eSPI,选择arduino_gfx吧

本来对于tft_espi和arduino_gfx没啥特别的感觉&#xff0c;都是tft屏幕驱动,arduino_gfx的好处就是除了支持tft外还支持一些oled屏幕。 谁知道在探寻我那个在单片机项目上显示中文方案 https://github.com/StarCompute/tftziku 时候&#xff0c;寻求极致性能测了一些东西。 t…

3---版本库和工作区、使用.git管理工作区的文件、HEAD指针和master的关系

一、本地仓库和工作区的概念&#xff1a; 1.1本地仓库——版本库&#xff1a; 本地仓库又称为版本库。版本库是隐藏目录.git&#xff0c;并不是.git所在的目录。版本库不属于工作区。我们不能手动操作.git目录及其中的文件&#xff0c;这样可能会直接破坏版本库。stage(暂存区…