一、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的更多相关文章

  1. [转载]如何将OFBIZ(opentaps)默认数据库迁移至mysql((2

    原文地址:如何将OFBIZ(opentaps)默认数据库迁移至mysql(利昂原创)作者:利昂 ofbiz自带的数据库是Derby,这是一种小型的适合与测试系统的数据库,但不适合在产品级系统中使用,所 ...

  2. Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具

    Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具 1 kettle --第一次使用kettle玩迁移,有什么不足之处和建议,请大家指正和建议. ...

  3. 从其他数据库迁移到MySQL及MySQL特点

    从其他数据库迁移到MySQL Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程.视图.定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用 ...

  4. MySQL数据库迁移与MySQL数据库批量恢复

    目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...

  5. InterBase数据库迁移到MySQL(说明)

    刚刚到公司1周便接到了第一个需求,进过了几天的沟通明白了是从gbk文件中恢复InterBase数据库,然后再将恢复到数据库中的数据导出到远程的MySQL数据库中,拿到需求先分步去看问题了,问题大致可分 ...

  6. 将sqllite3数据库迁移到mysql

    一.安装python mysql module (OneDrive): 1.运行python D:\OneDrive\Work\django\mysqlregistry.py2.http://www. ...

  7. mssql数据库迁移到mysql

    使用mysql migration toolkit工具来进行迁移.(需要安装jdk6 java的安装包) 发现数据量大的表却没能迁过来.软件使用比较容易,配置下源数据库信息,和目标数据库信息就可以进行 ...

  8. InterBase数据库迁移到MySQL(数据导入)

    在这个脚本中我使用的是Python的ORM框架SQLAlchemy来连接远程的MySQL数据库的,在写这个脚本的时候为了方便参数的输入,我就给之前和这个脚本添加了一个新的功能,就是在调用这个脚本的时候 ...

  9. InterBase数据库迁移到MySQL(数据导出)

    这篇我将记叙我的第二个脚本程序,这篇我使用InterBase数据库提供的“isql”命令来导出我所要的数据,但是由于“isql”命令没有直接导出数据的语句,说以我采用的是导入一个配置文件,在这个文件中 ...

  10. 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中

    步骤1,打开 Navicat Premium ,创建一个新的 mysql 数据库: 步骤2,选中刚刚创建的新数据库 ,双击选中后点击导入向导,然后选择 "ODBC",并点击下一步 ...

随机推荐

  1. thinkphp模板中,checkbox回显问题

    thinkphp 模板里面可以这样写包含操作 //in 标签 <in name="变量名" value="值1,值2,...">要输出的内容< ...

  2. 解决PHP Redis扩展无法加载的问题(zend_new_interned_string in Unknown on line 0)

    出错代码如下 PHP Warning: PHP Startup: Unable to load 最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/ph ...

  3. 常见js面试题

    包含内容: Array indexOf(). 数组扁平化 isArray() 数组的去重 Object.is() Array.filter 用一行代码实现数组扁平化? JavaScript isArr ...

  4. Windchill_IBA属性

    IBA属性:也可以称为软属性,创建IBA属性后并不会改变已有对象的数据库表结构,IBA的属性名和属性值由专门的表存放. StringDefinition表:字符串类型的IBA属性定义 :StringV ...

  5. 33.Odoo产品分析 (四) – 工具板块(4) – 问题追踪及群发邮件营销(1)

    查看Odoo产品分析系列--目录 问题追踪 该应用程序允许您管理项目中可能遇到的问题,如系统中的bug.客户投诉或物料故障.  该模块安装后没有菜单显示,而是作为后台管理,接收一些问题报告. 群发邮件 ...

  6. VS code 配置为 Python R LaTeX IDE

    VS code配置为Python R LaTeX IDE VS code的中文断行.编辑功能强大,配置简单. VSC的扩展在应用商店搜索安装,快捷键ctrl+shift+x调出应用商店. 安装扩展后, ...

  7. Android 与Java 进程退出 killProcess与System.exit

    android所有activity都在主进程中,在清单文件Androidmanifest.xml中可以设置启动不同进程,Service需要指定运行在单独进程?主进程中的主线程?还是主进程中的其他线程? ...

  8. Uvision4创建工程

    创建工程 创建好工程会出现如下的界面 创建文件( .asm 或 .c ) 选择菜单栏中的File->New- 按 Ctrl+S 保存文件并填写文件名 添加到之前创建的工程中 选择Target1- ...

  9. python高级(1)—— 基础回顾1

    Python基础回顾 认识变量 在学习了之前的Python零基础入门系列[洗礼灵魂,修炼Python](说明一下,这个系列现在回过来再来看这个名字确实好土啊,然后有些知识点感觉还不太精准,后期看如果有 ...

  10. Vue2 学习笔记5

    文中例子代码请参考github watch属性的使用 考虑一个问题:想要实现 名 和 姓 两个文本框的内容改变,则全名的文本框中的值也跟着改变:(用以前的知识如何实现???) 监听data中属性的改变 ...