iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >搭建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://www.lsjlt.com/news/35394.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 搭建Redis服务器步骤详细介绍
    目录安装Redis 配置redis.config测试登录可视化redis软件redis命令行中文乱码安装Redis 我的安装包在 tar -zxvf redis-6.2.6.t...
    99+
    2024-04-02
  • Gitlab搭建详细步骤
    Gitlab的概念        GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是目前被广泛使用的基于gi...
    99+
    2023-09-04
    运维 git linux centos 服务器
  • 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
  • openstack架构搭建的步骤是什么
    搭建OpenStack架构的步骤如下: 准备环境:安装操作系统和必要软件,配置网络和存储等基础环境。 安装Keystone:...
    99+
    2024-04-02
  • 用XtraBackup搭建mysql主从复制的详细步骤
    本篇内容介绍了“用XtraBackup搭建mysql主从复制的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • Git服务器的详细搭建步骤
    这篇文章主要介绍“Git服务器的详细搭建步骤”,在日常操作中,相信很多人在Git服务器的详细搭建步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Git服务器的详细搭建步骤”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-04
  • 搭建Python Web环境的详细步骤
    这篇文章主要介绍“搭建Python Web环境的详细步骤”,在日常操作中,相信很多人在搭建Python Web环境的详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”搭建Python Web环境的详细步骤...
    99+
    2023-06-17
  • VScode搭建OpenCV环境的详细步骤
    目录安装MinGW-w64安装CMake生成MakeFiles编译OpencvVScode配置  用vscode来写opencv代码需要自己编译OpenCV,主要用到MinGW-w6...
    99+
    2024-04-02
  • centos搭建Gitlab的详细步骤(分享)
    随着软件开发的不断发展,代码版本控制成为了任何一个软件开发团队的必备工具。Gitlab作为一款免费、开源、易于安装和管理的代码管理平台已经广泛应用于各个开发团队中。本文将介绍在CentOS系统上搭建Gitlab的详细步骤。准备工作在开始安装...
    99+
    2023-10-22
  • Redis的详细安装步骤
    一、Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。    它支持字符串(string)、哈希表(hash)、列表(list)、集合(set)、有序集合(zset / so...
    99+
    2023-09-03
    redis 数据库 java
  • vite的搭建与使用的详细步骤
    目录1.安装:2.在vite项目中使用TypeScript3.vite项目使用less sass scss 4.vite打包5.下面就来创建一个标准的项目实际开发中编写的代...
    99+
    2024-04-02
  • linux搭建ldap服务器的详细步骤
    本篇内容介绍了“linux搭建ldap服务器的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装openldap-servers软件...
    99+
    2023-06-13
  • RHEL搭建FTP服务器的详细步骤
    这篇文章主要介绍“RHEL搭建FTP服务器的详细步骤”,在日常操作中,相信很多人在RHEL搭建FTP服务器的详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RHEL搭建FTP服务器的详细步骤”的疑惑有所...
    99+
    2023-06-17
  • springboot使用redis的详细步骤
    目录springboot使用redisspringboot使用redis步骤StringRedisTemplate和RedisTemplate总结 springboot使用...
    99+
    2024-04-02
  • 使用vscode搭建javaweb项目的详细步骤
    目录工具准备创建web项目运行项目总结工具准备 jdk, maven, tomcat9, vscode; 上述软件的安装配置在百度就能找到很多教程, 所以此处不详述. (jdk使用1...
    99+
    2022-11-13
    vscode开发javaweb项目 vscode怎么创建javaweb工程 vscode配置javaweb环境
  • JavaScript架构前端监控搭建过程步骤
    目录前言采集阶段:要采集哪些数据?前端异常接口异常行为数据API 阶段:搭建上报数据的 API 接口数据存储阶段:接口对接数据库查询统计阶段:数据查询和统计分析可视化阶段:最终的数据...
    99+
    2024-04-02
  • 搭建 Selenium+Python开发环境详细步骤
    目录一、写在前面二、环境搭建1、Python环境搭建2、第一个脚本3、可能遇到的问题4、解决办法5、运行效果三、写在最后一、写在前面 我从未想过自己会写python系列的自动化文章,...
    99+
    2024-04-02
  • hadoop伪分布模式搭建(详细步骤)
    一、前期准备 1. 关闭防火墙 2. 安装好JDK 3. 准备hadoop安装包 二、安装hadoop伪分布模式 1. 在home/hadoop/software/路径下创建hadooptmp目录 2. 解压hadoop-3.3.0.ta...
    99+
    2023-09-20
    hadoop 大数据 服务器
  • 在阿里云上搭建SVN服务器搭建的详细步骤
    本文将详细介绍如何在阿里云上搭建SVN服务器,包括服务器的配置、客户端的配置以及如何使用SVN进行版本控制。 一、服务器的配置首先,你需要在阿里云上创建一个云服务器实例,选择合适的配置,例如CPU、内存、硬盘等。登录阿里云控制台,找到并选择...
    99+
    2023-12-18
    阿里 步骤 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作