返回顶部
首页 > 资讯 > 数据库 >搭建redis+mysql架构的详细步骤
  • 853
分享到

搭建redis+mysql架构的详细步骤

2024-04-02 19:04:59 853人浏览 薄情痞子
摘要

下面一起来了解下搭建Redis+Mysql架构的详细步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望搭建redis+mysql架构的详细步骤这篇短内容是你想要的。redis+mysql框架搭建&nbs

下面一起来了解下搭建Redis+Mysql架构的详细步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望搭建redis+mysql架构的详细步骤这篇短内容是你想要的。

redis+mysql框架搭建

   redis是一个key-value存储系统。和memcached类似,不过redis支持的value类型更多,主要有:string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)。redis和memcached一样,为了保证效率,都是把数据缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件,并且在此基础上实现master-slave主从同步。

简单的比较redis和memcached的区别,主要就是以下几点: 1、redis不仅支持简单的键值类型的数据,同时提供string、set、zset、hash等数据结构的存储。 2、redis支持数据的备份,即 master-slave模式的数据备份。 3、redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

接下来介绍redis+mysql架构的搭建: 环境:红帽6.5、虚拟主机VM1 ip=172.25.10.8

一:在虚拟主机上的安装redis:

yum install -y GCc gcc-c++ ;安装编译软件

cd redis/

tar -zxf redis-3.0.2.tar.gz ;解压软件包

cd redis-3.0.2 ;进入解压的目录

make ---> #make install ;直接编译并且安装

cd utils/ ;进入此util目录,执行下面的脚本。配置并启动程序

./install_server.sh

搭建redis+mysql架构的详细步骤

netstat -antlpe | grep redis ;可以查看redis使用的端口号为6379

redis-cli ;redis客户端的使用命令

ste no1 1234 ;将键no1添加键值1234; get no1 ;获得no1的键值;

二、介绍redis作mysql的缓存云服务器。 1、安装lnmp环境,安装以下软件包:

yum install -y mysql-server ;安装mysql数据库

yum install -y Nginx-1.8.0-1.el6.ngx.x86_64.rpm PHP-* ;安装nginx和php

vim /etc/php.ini ;编辑php的配置文件,修改时区

搭建redis+mysql架构的详细步骤

vim /etc/php-fpm.d/www.conf ;修改php-fpm 用户和组为nginx,默认为apache

搭建redis+mysql架构的详细步骤

/etc/init.d/php-fpm start ;启动php-fpm服务

netstat -antlpe ;查看php-fpm端口号9000;

/etc/init.d/nginx start ;启动nginx服务;

cd /usr/share/nginx/html/ ;进入默认发布目录,编写php 测试页面

vim index.php

<?php 

Phpinfo()

?>

vim /etc/nginx/conf.d/default.conf ;编写nginx的默认配置文件;打开php模块,

搭建redis+mysql架构的详细步骤


搭建redis+mysql架构的详细步骤

/etc/init.d/nginx restart ;重新启动nginx服务;

创建php 测试页面;

搭建redis+mysql架构的详细步骤

vim index.php

<?php $redis = new Redis(); $redis->connect('127.0.0.1',6379) or die ("could net connect redis server"); $query = "select * from test limit 9"; for ($key = 1; $key < 10; $key++) { if (!$redis->get($key)) { $connect = mysqlconnect('127.0.0.1','redis','westos'); mysqlselectdb(test); $result = mysqlquery($query); //如果没有找到$key,就将该查询sql 的结果缓存到redis while ($row = mysqlfetchassoc($result)) { $redis->set($row['id'],$row['name']); } $ myserver = ' mysql'; break; } else { $myserver = "redis"; $data[$key] = $redis->get($key); } } echo $myserver; echo "

"; for ($key = 1; $key < 10; $key++) { echo "number is $key"; echo "
"; echo "name is $data[$key]"; echo "
"; } ?>

/etc/init.d/mysqld start ;启动数据库

安装php的redis扩展; 材料:phpredis-master.zip

unzip phpredis-master.zip ;解压软件包

cd phpredis-master

phpize ;进行配置编译安装

./configure

make ----># make install

cd /usr/lib64/php/modules/ ;进入php的模块目录;

cp /etc/php.d/mysql.ini /etc/php.d/redis.ini ;拷贝mysql.ini为redis.ini;

vim /etc/php.d/redis.in ;修改模块内容,其实就是添加redis.so 模块;

extension=redis.so

/etc/init.d/php-fpm reload ;php-fpm从新导入功能模块;

在数据库中添加测试用test.sql.

mysql < test.sql

mysql

select * from test; update test set name="westos" where id=1;


   在FIREFOX中输入master的ip进入页面,查看测试结果变化;进行验证数据从哪里读到,第一应该是从数据库中读到,刷新一次数据缓存在redis中,所以数据应该是从redis中读到;但是如果在数据库中更新了相关的数据,而redis中缓存的数据却无法及时更新,因为redis中任然有对应的KEY,数据就不会更新,这是一个缺陷,接下来就要通过mysql触发器将改变的数据同步到redis中。

搭建redis+mysql架构的详细步骤           搭建redis+mysql架构的详细步骤

三、数据库与redis数据同步: 配置gearman实现数据同步:Gearman 是一个支持分布式的任务分发框架, Gearman Job Server:Gearman 核心程序,需要编译安装并以守护进程形式运行在后台。 Gearman Client:可以理解为任务的请求者。 Gearman Worker:任务的真正执行者,一般需要自己编写具体逻辑并通过守护进程方式 运行,Gearman Worker 接收到Gearman Client 传递的任务内容后,会按顺序处理。 大致流程:下面要编写的mysql 触发器,就相当于Gearman 的客户端。修改表,插入表就相当于直接 下发任务。然后通过libmysqludfJSON UDF库函数将关系数据映射为jsON 格式,然后 在通过gearman-mysql-udf插件将任务加入到Gearman的任务队列中,最后通过 redis_worker.php,也就是Gearman 的worker 端来完成redis 数据库的更新。

yum install -y libgearman-devel-1.1.8-2.el6.x8664.rpm libgearman-1.1.8-2.el6.x8664.rpm libevent-* ;安装gearman软件包及依赖包;

yum install -y gearmand-1.1.8-2.el6.x86_64.rpm

/etc/init.d/gearmand start ;启动geaman服务;

tar -zxf gearman-1.1.2.tgz ;安装php的gearman扩展

cd gearman-1.1.2

phpize

./configure

make -----> # make install ;源码编译安装三部曲;

cd /usr/lib64/php/modules/ --> gearman.so ;在此进入php功能模块文件

cd /etc/php.d/

cp redis.ini gearman.ini ;如上添加redis功能模块一样,在这添加gearman功能模块,

vim gearman.ini

extension=gearman.so

php -m | grep gearman ;查看gearman功能模块是否添加上

安装libmysqludfjson: libmysqludfjson UDF库函数将关系数据映射为JSON格式。而通常将数据映射为JSON格式是通过程序来转换的。

yum install -y mysql-devel ;安装mysql-devle软件依赖项

cd /root/redis/

unzip libmysqludfjson-master.zip

cd libmysqludfjson-master

gcc $(mysqlconfig --cflags) -shared -fPIC -o libmysqludfjson.so libmysqludfjson.c ;将libmysqludfjson.c编译输出为libmysqludf_json.so

mysql ;查看mysql的模块目录;

show global variables like 'plugin_dir';

cp libmysqludfjson.so /usr/lib64/mysql/ ;拷贝libmysqludfjson.so 模块

mysql ;注册UDF 函数

>CREATE FUNCTION json_object RETURNS STRING SONAME 'lib_mysqludf_json.so';

>select * from mysql.func;             ;查看注册的函数;

搭建redis+mysql架构的详细步骤


安装gearman-mysql-udf,这个插件是用来管理调用Gearman 的分布式的队列。

tar -zxf gearman-mysql-udf-0.6.tar.gz

cd gearman-mysql-udf-0.6

./configure --libdir=/usr/lib64/mysql/plugin ;编译安装

make -----> #make install

> create function gman_do_background returns string soname 'libgearman_mysql_udf.so';   ;注册UDF函数;


> create function gman_servers_set returns string soname 'libgearman_mysql_udf.so';


> select * from mysql.func;           ;查看函数

搭建redis+mysql架构的详细步骤

cd  ~/redis/

vim test.sql

mysql

> show triggers from test;

>select gman_servers_set('127.0.0.1:4730');        ;指定gearman的服务信息,

编写mysql 触发器(根据实际情况编写)

vim test.sql

use test; DELIMITER $$ CREATE TRIGGER datatoredis AFTER UPDATE ON test FOR EACH ROW BEGIN SET @RECV=gmandobackground('syncToRedis', json_object(NEW.id as id, NEW.name as name)); END$$ DELIMITER ;

mysql < test.sql

mysql > SHOW TRIGGERS FROM test; ;查看触发器;

搭建redis+mysql架构的详细步骤

编写gearman的worker端:

vim worker.php

<?php $worker = new GearmanWorker(); $worker->addServer(); $worker->addFunction('syncToRedis', 'syncToRedis'); $redis = new Redis(); $redis->connect('127.0.0.1', 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); #这条语句就是将id 作KEY 和 name 作VALUE 分开存储,需要和前面写的php 测试代码的存取一致。 } ?>

nohup php worker.php & ;后台运行worker

更新mysql中的数据,mysql 更新数据库内容,redis就会立即更新缓存的数据。可以直接验证。


搭建redis+mysql架构的详细步骤       搭建redis+mysql架构的详细步骤

看完搭建redis+mysql架构的详细步骤这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的数据库栏目。

您可能感兴趣的文档:

--结束END--

本文标题: 搭建redis+mysql架构的详细步骤

本文链接: https://lsjlt.com/news/35394.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 搭建redis+mysql架构的详细步骤
    下面一起来了解下搭建redis+mysql架构的详细步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望搭建redis+mysql架构的详细步骤这篇短内容是你想要的。redis+mysql框架搭建&nbs...
    99+
    2024-04-02
  • MySQL 搭建MHA架构部署的步骤
    MAH 一:MAH架构介绍 MHA (Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本人youshimaton开发,是一套优秀的作为MySQL高可用...
    99+
    2022-05-20
    MySQL MHA架构部署 MySQL部署MHA架构
  • 搭建基于binlog方式的主从架构详细步骤
    下文主要给大家带来搭建基于binlog方式的主从架构详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑搭建基于binlog方式的主从架构详细步骤这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。...
    99+
    2024-04-02
  • MySQL中搭建ProxySQL Cluster的详细步骤
    下文给大家带来关于MySQL中搭建ProxySQL Cluster的详细步骤,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL中搭建ProxySQL Cluster的详细步骤对大家多少有点帮助吧。环境:...
    99+
    2024-04-02
  • Gitlab搭建详细步骤
    Gitlab的概念        GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是目前被广泛使用的基于gi...
    99+
    2023-09-04
    运维 git linux centos 服务器
  • 搭建Redis服务器步骤详细介绍
    目录安装Redis 配置redis.config测试登录可视化redis软件redis命令行中文乱码安装Redis 我的安装包在 tar -zxvf redis-6.2.6.t...
    99+
    2024-04-02
  • MySQL搭建主从复制详细步骤
    下面讲讲关于MySQL搭建主从复制详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL搭建主从复制详细步骤这篇文章你一定会有所受益。搭建MySQL主从复制需要提前准...
    99+
    2024-04-02
  • docker搭建memcached的详细步骤
    目录搭建步骤worker登录机器新建文件夹下载magent-0.5.tar.gz并安装创建Dockerfile并构建镜像构建镜像magent:v1pull memcached镜像手动...
    99+
    2024-04-02
  • IDEA(2022.2)搭建Servlet基本框架详细步骤
    文章目录 1 创建基本Web项目1.1 创建新项目1.2 生成Module1.3 设置Web框架1.4 新建导航页 2 配置Tomcat服务器2.1 设置Tomcat2.2 部署Tomca...
    99+
    2023-09-12
    servlet intellij-idea java
  • mysql建表的详细步骤
    本文主要给大家简单讲讲mysql建表的详细步骤,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql建表的详细步骤这篇文章可以给大家带来一些实际帮助。1....
    99+
    2024-04-02
  • openstack架构搭建的步骤是什么
    搭建OpenStack架构的步骤如下: 准备环境:安装操作系统和必要软件,配置网络和存储等基础环境。 安装Keystone:...
    99+
    2024-04-02
  • 用XtraBackup搭建mysql主从复制的详细步骤
    本篇内容介绍了“用XtraBackup搭建mysql主从复制的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • 在CentOS中搭建Hadoop的详细步骤
    搭建说明:第一次搭建 Hadoop 的小伙伴,请严格按照文章中的软件环境和步骤搭建,不一样的版本都可能会导致问题。 软件环境: 虚拟机:VMware Pro14 linux:CentOS-6.4(下载地址,下载DVD版本...
    99+
    2022-06-04
    CentOS搭建Hadoop CentOS Hadoop搭建
  • 搭建Python Web环境的详细步骤
    这篇文章主要介绍“搭建Python Web环境的详细步骤”,在日常操作中,相信很多人在搭建Python Web环境的详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”搭建Python Web环境的详细步骤...
    99+
    2023-06-17
  • centos搭建Gitlab的详细步骤(分享)
    随着软件开发的不断发展,代码版本控制成为了任何一个软件开发团队的必备工具。Gitlab作为一款免费、开源、易于安装和管理的代码管理平台已经广泛应用于各个开发团队中。本文将介绍在CentOS系统上搭建Gitlab的详细步骤。准备工作在开始安装...
    99+
    2023-10-22
  • VScode搭建OpenCV环境的详细步骤
    目录安装MinGW-w64安装CMake生成MakeFiles编译OpencvVScode配置  用vscode来写opencv代码需要自己编译OpenCV,主要用到MinGW-w6...
    99+
    2024-04-02
  • Git服务器的详细搭建步骤
    这篇文章主要介绍“Git服务器的详细搭建步骤”,在日常操作中,相信很多人在Git服务器的详细搭建步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Git服务器的详细搭建步骤”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-04
  • vite的搭建与使用的详细步骤
    目录1.安装:2.在vite项目中使用TypeScript3.vite项目使用less sass scss 4.vite打包5.下面就来创建一个标准的项目实际开发中编写的代...
    99+
    2024-04-02
  • MySQL创建视图的详细步骤
    下面讲讲关于MySQL创建视图的详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL创建视图的详细步骤这篇文章你一定会有所受益。1.视图概述:视图是从一个或多个表导...
    99+
    2024-04-02
  • Redis的详细安装步骤
    一、Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。    它支持字符串(string)、哈希表(hash)、列表(list)、集合(set)、有序集合(zset / so...
    99+
    2023-09-03
    redis 数据库 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作