MySQL向redis同步数据

##创建表及数据

CREATE TABLE events_all_time (

id int(11) unsigned NOT NULL AUTO_INCREMENT,

action varchar(255) NOT NULL,

count int(11) NOT NULL DEFAULT 0,

PRIMARY KEY (id),

UNIQUE KEY uniq_action (action)

);

insert into events_all_time(action,count) values(‘yangdan‘,1000);

insert into events_all_time(action,count) values(‘liufeng‘,200);

##保存同步数据脚本

SELECT CONCAT(

"*4\r\n",

‘$‘, LENGTH(redis_cmd), ‘\r\n‘,

redis_cmd, ‘\r\n‘,

‘$‘, LENGTH(redis_key), ‘\r\n‘,

redis_key, ‘\r\n‘,

‘$‘, LENGTH(hkey), ‘\r\n‘,

hkey, ‘\r\n‘,

‘$‘, LENGTH(hval), ‘\r\n‘,

hval, ‘\r‘

)

FROM (

SELECT

‘HSET‘ as redis_cmd,

‘events_all_time‘ AS redis_key,

action AS hkey,

count AS hval

FROM events_all_time

) AS t;

##执行同步命令(shell)

mysql [-h 127.0.0.1] -uroot -plinuxcast -DtestRedis --skip-column-names --raw </usr/local/events_to_redis.sql |redis-cli --pipe

##登录redis

hgetall events_all_time

时间: 2024-12-24 10:13:58

MySQL向redis同步数据的相关文章

通过Gearman实现MySQL到Redis的数据同步

对于变化频率非常快的数据来说,如果还选择传统的静态缓存方式(Memocached.File System等)展示数据,可能在缓存的存取上会有很大的开销,并不能很好的满足需要,而Redis这样基于内存的NoSQL数据库,就非常适合担任实时数据的容器. 但是往往我们又有数据可靠性的需求,采用MySQL作为数据存储,不会因为内存问题而引起数据丢失,同时也可以利用关系数据库的特性实现很多功能. 所以就会很自然的想到是否可以采用MySQL作为数据存储引擎,Redis则作为Cache.而这种需求目前还没有看

从MySQL到Redis 提升数据迁移的效率

场景是从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中.这样可能没什么错,但是速度会非常慢.而如果能够使MySQL的查询输出数据直接能够与Redis命令行的输入数据协议相吻合,可能就省事多了.根据测试800w的数据迁移,时间从90分钟缩短到2分钟.具体案例如下:MySQL数据表结构: CREATE TABLE events_all_time (id int(11) unsigned NOT NULL AUTO_INCREM

mysql准实时同步数据到Elasticsearch

4. 安装JDK8.MySQL5.6驱动以及Logstash -6.0.0 ECS中分别安装JDK8.MySQL5.6驱动以及Logstash -6.0.0.如下图: 安装Logstash input.output插件,此案例数据输入是MySQL,输出是ES,so相应的插件应该是logstash-input-jdbc和logstash-output-elasticsearch. 安装插件的命令分别是(在Logstash主目录下运行):https://blog.51cto.com/433266/b

MYSQL数据库间同步数据

http://blog.csdn.net/swandy45/article/details/6982421 环境要求: Windows 操作系统 需要Mysql 3.23.15以后的版本. 假设数据库A为主机,数据库B为从机(A向B提供同步服务,即B中的数据来自A) A机器:IP=10.10.151.166 B机器:IP=10.10.151.156 下面看单向同步的配置步骤: 1         在机器A中建立一个新的数据库,sql语句: [sql] view plain copy CREATE

Canal+Kafka实现MySql与Redis数据一致性

在生产环境中,经常会遇到MySql与Redis数据不一致的问题.那么如何能够保证MySql与Redis数据一致性的问题呢?话不多说,咱们直接上解决方案. 如果对Canal还不太了解的可以先去看一下官方文档:https://github.com/alibaba/canal 首先,咱们得先开启MySql的允许基于BinLog文件主从复制.因为Canal的核心原理也是相当于把自己当成MySql的一个从节点,然后去订阅主节点的BinLog日志. 开启BinLog文件配置 1. 配置MySQL的  my.

一步完成 MySQL 向 Redis 迁移

从mysql搬一个大表到redis中,你会发现在提取.转换或是载入一行数据时,速度慢的让你难以忍受.这里我就要告诉一个让你解脱的小技巧.使用“管道输出”的方式把mysql命令行产生的内容直接传递给redis-cli,以绕过“中间件”的方式使两者在进行数据操作时达到最佳速度. 一个约八百万行数据的mysql表,原本导入到redis中需要90分钟,使用这个方法后,只需要两分钟.不管你信不信,反正我是信了. zzxworld zzxworld 翻译于 3年前 14人顶 顶 翻译的不错哦! 其它翻译版本

一步完成MySQL向Redis迁移

在把一个大表从 MySQL 迁移到 Redis 时,你可能会发现,每次提取.转换.导入一条数据是让人难以忍受的慢!这里有一个技巧,你可以通过使用管道把 MySQL 的输出直接输入到 redis-cli输入端,这可以使两个数据库都能以他们的最顶级速度来运行. 使用了这个技术,我把 800 万条 MySQL 数据导入到 Redis 的时间从 90 分钟缩短到了两分钟. Mysql到Redis的数据协议 redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的.这第一步就是把Mysq

实现mysql和redis之间的触发数据同步——mysql 触发器+gearman+php.worker

上回一次我们已经实现了 redis 作为 mysql 的缓存服务器,但是如果更新了 mysql,redis 中仍然会有对应的 KEY,数据就不会更新,此时就会出现 mysql 和 redis 数据不一致的情 况. 详情请见        基于redis缓存数据库实现lnmp架构高速访问 所以接下来就要通过 mysql 触发器将改变的数据同步到 redis 中. 因为mysql和redis数据格式不同,不能实现直接同步,所以 将MySQL数据首先放入Gearman中,然后通过一个自己编写的PHP

转载:MySQL和Redis 数据同步解决方案整理

from: http://blog.csdn.net/langzi7758521/article/details/52611910 最近在做一个Redis箱格信息数据同步到数据库Mysql的功能. 自己想了想,也有大概方案. 1.队列同步,变跟数据2份,使用消息队列,一份给Redis消费,一份给Mysql消费. 2.后台定时任务,定时刷新Redis中箱格信息到数据库. 网上也到处找了下解决方案,发现这么个问题,居然是天下一大抄,还抄的一字不差,我也抄吧. 方案一: 读: 读redis->没有,读