linux--redis(redis在lnmp中做加速器2)
在1的基础上测试更新mysql数据,work端和redis并不能一同更新
在server3上面更改数据
redis上面 客户端并没有改变
为了解决这种问题,安装调度器gearmand
gearmand是一个管理调度的工具,客户请求到达gearmand,它把请求分配给合适的work进程
client --> job --> worker
1、Client 请求发起者,客户端程序可以是任何一种语言,C 、PHP 、Perl 、Python 等。
2、Job 请求调度者,负载协调把 Client 发出的请求转发给合适的 Worker。
3、Worker 请求处理者,处理 Job 分发来的请求,可以是任何一种语言
server1
刚才已经装好gearmand的包
server3
添加一个注册函数 传送数据
yum install unzip -y
unzip lib_mysqludf_json-master.zip
yum install mariadb-devel -y
yum install gcc -y
编译模块
将模块放到 mysql 插件目录
cd lib_mysqludf_json-master
gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c
cd
cp lib_mysqludf_json-master/lib_mysqludf_json.so /usr/lib64/mysql/plugin/
查看
mysql -uroot -pwestos
show global variables like 'plugin_dir';
注册函数
CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';
安装插件管理 gearman 的分布式队列
tar zxf gearman-mysql-udf-0.6.tar.gz
安装插件
yum install -y libevent-devel-2.0.21-4.el7.x86_64.rpm libgearman-1.1.12-18.el7.x86_64.rpm libgearman-devel-1.1.12-18.el7.x86_64.rpm
cd gearman-mysql-udf-0.6
./configure --libdir=/usr/lib64/mysql/plugin/ --with-mysql
make && make install
在mysql 里面配置
注册 udf 函数
mysql -uroot -pwestos
CREATE FUNCTION gman_do_background RETURNS STRING SONAME 'libgearman_mysql_udf.so';
CREATE FUNCTION gman_servers_set RETURNS STRING SONAME 'libgearman_mysql_udf.so';
select * from mysql.func;
指定 gman 服务信息
SELECT gman_servers_set('172.25.254.1:4730');
编写 mysql 触发器
vim test.sql
use test;
#CREATE TABLE `test` (`id` int(7) NOT NULL AUTO_INCREMENT, `name` char(8) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#INSERT INTO `test` VALUES (1,'test1'),(2,'test2'),(3,'test3'),(4,'test4'),(5,'test5'),(6,'test6'),(7,'test7'),(8,'test8'),(9,'test9');DELIMITER $$
CREATE TRIGGER datatoredis AFTER UPDATE ON test FOR EACH ROW BEGINSET @RECV=gman_do_background('syncToRedis', json_object(NEW.id as `id`, NEW.name as `name`)); END$$
DELIMITER ;
导入
mysql -pwestos < test.sql
server1
cp worker.php /usr/local/
cd /usr/local/
vim worker.php
nohup php /usr/local/worker.php &> /dev/null &
后台运行 不管对错
<?php
$worker = new GearmanWorker();
$worker->addServer();
$worker->addFunction('syncToRedis', 'syncToRedis');$redis = new Redis();
$redis->connect('172.25.254.2', 6379);while($worker->work());
function syncToRedis($job)
{global $redis;$workString = $job->workload();$work = json_decode($workString);if(!isset($work->id)){return false;}$redis->set($work->id, $work->name);
}
?>
测试:
在server3上面改变
linux--redis(redis在lnmp中做加速器2)相关推荐
- Redis集群——利用Gearman在Lnmp架构中做MySQL的缓存服务器
一.概述 Redis的集群主要是使用切片技术来搭建的,简单来说就是把所有KEY分散存放到不同的redis节点上(不要把鸡蛋都放在一个篮子里). 1. 集群基本原理 Redis集群中内置了16384个槽 ...
- 人生最好的php,mysql,linux,redis,docker等相关技术经典面试题,新手收藏学习,持续更新中。。。
php面试题 1.写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) # 200:服务器请求成功 # 301:永久重定向,旧网页已被新网页永久替代 # 302:表示临时 ...
- 安装Linux虚拟机并在Llinux中安装Redis、MySQL
文章目录 1.下载VMware 2.创建虚拟机 3.安装CentOS 4.给linux虚拟机设置静态IP 4.1修改子网IP和网关IP 4.2以编辑模式打开网卡配置文件 4.3修改IP为静态IP 4. ...
- linux修改redis的访问ip不生效,linux系统中 redis 保存数据的5种形式 linux后端模式启动 jedis无法通过IP地址和端口号访问如何修改linux防火墙...
vim修改redis.conf配置文件(我的已经复制到虚拟机的/usr/local/redis/bin目录下)为daemonize yes, 以后端模式启动 ./redis-server redis. ...
- linux 查redis状态_干货:用案例代码详解Redis中的事件驱动模型
Redis 是一个事件驱动的内存数据库,服务器需要处理两种类型的事件. 文件事件 时间事件 下面就会介绍这两种事件的实现原理. 推荐阅读:我凭借这份pdf拿下了蚂蚁金服.字节跳动.小米等大厂的offe ...
- linux安装 redis,在linux中安装redis
本文中使用的系统是Ubantu 18.04 因为我是第一次使用Linux系统,并不知道使用哪一款比较好,主要是因为Ubantu的界面很好看(笑) 在使用linux安装redis之前遇到过几个小问题.在 ...
- 查找linux中的redis在哪个文件夹,linux查看redis版本有哪些步骤?在Linux中基本操作redis有哪些?...
通常我们是在windows系统下安装软件,查看版本是通过命令行的方式,今天给大家由小编介绍我们如何在Linux的操作系统下,通过哪些步骤来查看redis的版本以及有哪些基本操作呢?下面我们一起来了解下 ...
- docker安装redis提示没有日记写入权限_浅析Linux下Redis的攻击面(一)
文章转自先知社区:https://xz.aliyun.com/t/7974 0x0 前言 Redis在内网渗透中常常扮演着重要的角色,其攻击方式非常多样化,在内网复杂的环境架构中容易出现各种问题, ...
- Linux 下 Redis 安装教程
Linux 下 Redis 安装教程 事先准备 下载 Redis 安装 Redis 设置 Redis 开机自启动 远程访问 Redis RDM 远程访问 Redis 笔者的运行环境: CentOS S ...
最新文章
- 杭电ACM刷题(1):1002,A + B Problem II
- Oracle电子商务套件版本12.1.3自述文件 (Doc ID 1534411.1)
- Android 系统(115)---死机问题分析
- centos6.5卸载java,CentOS 5.2卸载自带Java1.4.2 安装JDK6
- Golang类型转换模块 - gconv
- css常用选择器选择器
- VS2017 无法使用XXX附加到应用程序
- C# Parse and TryParse 方法详解
- 魔兽世界服务器修改模型,修改模型教程!
- 使用canvas压缩图片
- 图像处理之EXIF信息
- 自增约束(auto_increment)
- 学好水彩,给自己做个手机壳吧
- 马尾神经损伤在中医上叫什么?
- OpenCV色域转换
- 【解决方法】浏览器网页界面显示未连接到互联网
- 这5个PNG免抠素材网站,可商用,赶紧马住了
- 英国将强制互联网公司遏制外国政府发布假信息,违法者或被罚款数十亿美元...
- SQL 全文检索应用
- module.exports 与 exports.xxx 的区别
热门文章
- 老毛桃制作linux u盘系统盘,使用U盘制作linux服务器启动盘,U盘制作普通系统盘的制作过程也是一样...
- Sap Program 自动创建供应商资料,BP
- 苹果痛下狠手,全面禁止App内部的广告拦截软件
- 视频制作软件哪个好,视频剪辑软件哪个好,电视剧怎么剪辑成短视频发布?
- 学生-课程数据库—初识sql语句(04)(注释版)
- hive 的 lateral view用法以及注意事项
- 俄罗斯DST收购ICQ;苹果收购芯片提供商(每日关注20100428)
- java系统开发注意事项
- Linux高级命令进阶(week1_day2)--技术流ken
- AMM敏捷成熟度评估框架介绍