数据库迁移之mysql-redis.txt
一、mysql迁移数据到redis
关于redis+mysql应用:
微博当然是最大的redis集群了:
总结了基本流程:
1. 发微博– > 进入消息队列– > 存入MySQL– > 复制到Redis
2. 查询 – > 查询缓存– > 查询Redis – > 查询MySQL
yum install -y mariadb-server.x86_64(省事,源码安装)
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# systemctl enable mariadb.service
[root@localhost ~]# mysql
MariaDB [(none)]> create database mysql_redis;
MariaDB [(none)]> use mysql_redis;
MariaDB [mysql_redis]> create table event_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));
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql_redis]> show tables;
+-----------------------+
| Tables_in_mysql_redis |
+-----------------------+
| event_all_time |
+-----------------------+
MariaDB [mysql_redis]> desc event_all_time;
+--------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| action | varchar(255) | NO | UNI | NULL | |
| count | int(11) | NO | | 0 | |
+--------+------------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
MariaDB [mysql_redis]> insert into event_all_time values(1,"asd",123);
.
.(插入数据 )
.
MariaDB [mysql_redis]> select * from event_all_time;
+----+-----------+-----------+
| id | action | count |
+----+-----------+-----------+
| 1 | asd | 123 |
| 2 | asdf | 1234 |
| 3 | asdfg | 12345 |
| 4 | asdfhg | 123456 |
| 5 | asdfhgh | 1234567 |
| 6 | asdfhghj | 12345678 |
| 7 | asdfhghjk | 123456789 |
+----+-----------+-----------+
7 rows in set (0.00 sec)
%%对于每行数据中执行的 Redis命令如下: HSET events_all_time [action] [count]%%
[root@localhost ~]# vim event_to_redis.sql
-- event_to_redis.sql
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,
'event_all_time' AS redis_key,
action AS hkey,
count AS hval
FROM event_all_time
) AS t
*4 #表示有4个参数
第一个参数:redis命令
第二个参数:redis键
第三,四个命令:redis值
# 一条语句结束
每行默认以 \r\n 结尾
同时在执行完一行后,以 \r\n 代码一条语句结束
开始转移
[root@localhost ~]# mysql mysql_redis --skip-column-names --raw < event_to_redis.sql | redis-cli -h 192.168.122.137 --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 7
源码安装
mysql -uroot -p mysql_redis --skip-column-names --raw < event_to_redis.sql | redis-cli -h 192.168.122.137 --pipe [-a ireanlau ]
很重要的mysql参数说明:
--raw: 使mysql不转换字段值中的换行符。
--skip-column-names: 使mysql输出的每行中不包含列名
-a 加登陆密码
验证
192.168.122.137:6379> hgetall event_all_time
1) "asd"
2) "123"
3) "asdf"
4) "1234"
5) "asdfg"
6) "12345"
7) "asdfhg"
8) "123456"
9) "asdfhgh"
10) "1234567"
11) "asdfhghj"
12) "12345678"
13) "asdfhghjk"
14) "123456789"
数据库迁移之mysql-redis.txt的更多相关文章
- [转载]如何将OFBIZ(opentaps)默认数据库迁移至mysql((2
原文地址:如何将OFBIZ(opentaps)默认数据库迁移至mysql(利昂原创)作者:利昂 ofbiz自带的数据库是Derby,这是一种小型的适合与测试系统的数据库,但不适合在产品级系统中使用,所 ...
- Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具
Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具 1 kettle --第一次使用kettle玩迁移,有什么不足之处和建议,请大家指正和建议. ...
- 从其他数据库迁移到MySQL及MySQL特点
从其他数据库迁移到MySQL Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程.视图.定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用 ...
- MySQL数据库迁移与MySQL数据库批量恢复
目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...
- InterBase数据库迁移到MySQL(说明)
刚刚到公司1周便接到了第一个需求,进过了几天的沟通明白了是从gbk文件中恢复InterBase数据库,然后再将恢复到数据库中的数据导出到远程的MySQL数据库中,拿到需求先分步去看问题了,问题大致可分 ...
- 将sqllite3数据库迁移到mysql
一.安装python mysql module (OneDrive): 1.运行python D:\OneDrive\Work\django\mysqlregistry.py2.http://www. ...
- mssql数据库迁移到mysql
使用mysql migration toolkit工具来进行迁移.(需要安装jdk6 java的安装包) 发现数据量大的表却没能迁过来.软件使用比较容易,配置下源数据库信息,和目标数据库信息就可以进行 ...
- InterBase数据库迁移到MySQL(数据导入)
在这个脚本中我使用的是Python的ORM框架SQLAlchemy来连接远程的MySQL数据库的,在写这个脚本的时候为了方便参数的输入,我就给之前和这个脚本添加了一个新的功能,就是在调用这个脚本的时候 ...
- InterBase数据库迁移到MySQL(数据导出)
这篇我将记叙我的第二个脚本程序,这篇我使用InterBase数据库提供的“isql”命令来导出我所要的数据,但是由于“isql”命令没有直接导出数据的语句,说以我采用的是导入一个配置文件,在这个文件中 ...
- 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
步骤1,打开 Navicat Premium ,创建一个新的 mysql 数据库: 步骤2,选中刚刚创建的新数据库 ,双击选中后点击导入向导,然后选择 "ODBC",并点击下一步 ...
随机推荐
- Bootstrap 按钮颜色
上述按钮CSS规则 .btn { display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-w ...
- CSS3 画基本图形,圆形、椭圆形、三角形等
CSS3圆角#css3-circle{ width: 150px; height: 150px; border-radius: 50%; }CSS3 椭圆形css3 radius#css3-elips ...
- Html中的img标签 加载失败
在Http请求时,有时会遇到img图片标签加载失败,不显示的情况: 解决方法,在重新给src属性赋值时,先将onerror事件清除掉,再赋值,这样就不会存在循环调用问题了,代码如下; <img ...
- 2018-08-24 中文代码之Spring Boot对H2数据库简单查询
续前文: 中文代码之Spring Boot集成H2内存数据库 在词条中添加英文术语域: @Entity public class 词条 { @Id private long id; private S ...
- Python函数式编程(二):常见高级函数
一个函数的参数中有函数作为参数,这个函数就为高级函数. 下面学习几个常见高级函数. ---------------------------------------------------------- ...
- C#:读取视频的宽度和高度等信息
读取方式:使用ffmpeg读取,所以需要先下载ffmpeg.网上资源有很多. 通过ffmpeg执行一条CMD命令可以读取出视频的帧高度和帧宽度信息. 如图: 蓝线框中可以看到获取到的帧高度和帧宽度. ...
- 杨学明老师推出全新课程--《敏捷开发&IPD和敏捷开发结合的实践》
课时:13小时(2天) 敏捷开发&IPD和敏捷开发结合的实践 讲 师:杨学明 [课程背景] 集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Agile Developmen ...
- 2014年5月16至24日,杨学明老师为深圳创维RGB事业部提供两天的《软件测试管理》内训服务!
2014年5月16日和24日,<在软件开发流程中构筑软件质量—软件测试管理>内训课程在深圳创维集团成功举办!来自创维研发.测试.生产等部门的管理人员和核心骨干等参加了此次培训,此次培训由研 ...
- 复杂的字符串数组解析:{"setting":"简单:10:5,一般:5:10,困难:2:20"},使用split多次截取
"[0,{"id":563,"name":"测试题1","dscr":null,"picId&quo ...
- MySQL5.7 搭建主从同步
性能更好的新服务器申请下来了,我们决定在2台新服务器上使用mysql5.7,并且使用主从同步.读写分离架构,很不幸这个任务落到了我的头上.读写分离是在业务代码中实现的,在此不做详述,介绍一下我搭建My ...