让mysql有直接写redis能力

1、文件包下载

http://pan.baidu.com/s/1qW9DHYc

2、安装

gcc -fPIC -Wall -I/usr/local/mysql/include -I. -shared udf_redis.c cJSON.c -o udf_redis.so
cp udf_redis.so /usr/local/mysql/lib/plugin/

3、生成函数


DROP FUNCTION IF EXISTS `redis_connect`;
DROP FUNCTION IF EXISTS `redis_close`;
DROP FUNCTION IF EXISTS `redis_put`;
DROP FUNCTION IF EXISTS `redis_set`;
DROP FUNCTION IF EXISTS `redis_delete`;
DROP FUNCTION IF EXISTS `redis_incrBy`;
DROP FUNCTION IF EXISTS `redis_incr`;
DROP FUNCTION IF EXISTS `redis_decrBy`;
DROP FUNCTION IF EXISTS `redis_decr`;
DROP FUNCTION IF EXISTS `redis_decr`;
DROP FUNCTION IF EXISTS `redis_lPush`;
DROP FUNCTION IF EXISTS `redis_rPush`;
DROP FUNCTION IF EXISTS `redis_pipe`;
DROP FUNCTION IF EXISTS `json_object`;

create function json_object returns string soname ‘udf_redis.so‘;
create function redis_pipe returns string soname ‘udf_redis.so‘;
create function redis_rPush returns string soname ‘udf_redis.so‘;
create function redis_lPush returns string soname ‘udf_redis.so‘;
create function redis_decr returns string soname ‘udf_redis.so‘;
create function redis_decrBy returns string soname ‘udf_redis.so‘;
create function redis_incr returns string soname ‘udf_redis.so‘;
create function redis_incrBy returns string soname ‘udf_redis.so‘;
create function redis_delete returns string soname ‘udf_redis.so‘;
create function redis_set returns string soname ‘udf_redis.so‘;
create function redis_close returns string soname ‘udf_redis.so‘;
create function redis_connect returns string soname ‘udf_redis.so‘;

4、使用(简单的小例子)

select redis_set(‘myKey3‘,‘myValues3‘)

select redis_pipe(CONCAT(‘set myKey1‘,‘ ‘,‘myValues1‘,‘\r\n‘,‘ set myKey2‘,‘ ‘,‘myValues2‘,‘\r\n‘))

注:这样执行会有返回,不想有返回按如下修改

SET
@str_res = (select redis_set(‘myKey3‘,‘myValues3‘))

时间: 2024-10-24 16:48:38

让mysql有直接写redis能力的相关文章

利用多写Redis实现分布式锁原理与实现分析

在我写这篇文章的时候,其实我还是挺纠结的,因为我这个方案本身也是雕虫小技拿出来显眼肯定会被贻笑大方,但是我最终还是拿出来与大家分享,我本着学习的态度和精神,希望大家能够给与我指导和改进方案. 一.关于分布式锁 关于分布式锁,可能绝大部分人都会或多或少涉及到. 我举二个例子: 场景一:从前端界面发起一笔支付请求,如果前端没有做防重处理,那么可能在某一个时刻会有二笔一样的单子同时到达系统后台. 场景二:在App中下订单的时候,点击确认之后,没反应,就又点击了几次.在这种情况下,如果无法保证该接口的幂

MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)

MySQL.MongoDB.Redis 数据库之间的区别与使用 MySQL.MongoDB.Redis 数据库之间的区别与使用(本章迭代更新) update:2019年2月20日 15:21:19(本章迭代更新) 一.数据库之间的区别 MySQL MySQL概述 关系型数据库.无论数据还是索引都存放在硬盘中.到要使用的时候才交换到内存中.能够处理远超过内存总量的数据. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断

通过maxwell读取binlog日志,把mysql变化数据传入redis

Maxwell简介 Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis.RabbitMQ.Redis.Google Cloud Pub/Sub.文件或其它平台的应用程序.它的常见应用场景有ETL.维护缓存.收集表级别的dml指标.增量到搜索引擎.数据分区迁移.切库binlog回滚方案等.Maxwell给出了一些无需重新构建整个平台的事件来源的好处.大家可以通过官网下载合适的版本进行使用.Maxwell主要提供

cenOS系统,chkconfig设置程序开机自启--mysql、tomcat、redis、fastdfs--nginx/fdfs_trackerd/fdfs_storaged

设置程序开机启动就是将程序的启动脚本添加到/etc/init.d目录下,或者将启动路径写入/etc/rc.d/rc.local文件里面. 设置mysql开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig --add mysql chkconfig mysql on 设置fdfs_tracker开机启动 cp /usr/local/src/FastDFS/init.d/fdfs_tracke

一起写redis脚本

一.redis脚本环境 要写redis的脚本,首先应该搭建好它的脚本环境.redis使用lua作为其脚本语言.所以搭建lua环境成了首要工作. 环境:centos7.0 redis:3.0.2 1.1 安装lua环境 [[email protected] lua]# curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz [[email protected] lua]# tar zxf lua-5.3.0.tar.gz [[email protect

storm写redis问题小结

最近一直在跟进storm的问题,从storm集群的稳定性到监控到升级到bolt写redis的问题,因为公司目前没有专业运维redis的,只能我们数据部门自己搞了..下面记录下遇到的几个问题: 总结下目前storm写redis问题: 1.redis高峰写入异常,增加redis监控,发现cpu性能瓶颈(redis单线程,最高10w/s的处理量) 2.之前redis bolt的并发在200以上,过多的并发对redis的性能造成比较大的影响,现在已经减少为5 3.关闭了redis的monitor监控,常

MYSQL存储过程怎么写

MySQL存储过程 DELIMITER $$     DROP PROCEDURE IF EXISTS HelloWorld$$   CREATE PROCEDURE HelloWorld()   BEGIN        SELECT "Hello World!";   END$$   DELIMITER ; 3,变量 DECLARE声明,SET赋值 可以在DECLARE变量时用DEFAULT设置默认值,不设则为NULL DECLARE counter INT DEFAULT 0; 

一个系统存储由memcache+mysql组成,写一条数据的时候,更新memcache有几种方式,

一个系统存储由memcache+mysql组成,写一条数据的时候,更新memcache有几种方式,优缺点是什么? 缓存更新(不仅仅是memceche)有2种策略 一种是写时更新 一种是读时更新 一.写时更新是指  写db成功以后  同时更新缓存 , 能有效减少穿透  但是  容易引起数据的不一致 二.读时更新是说 写完db  删除缓存,等到 需要读得时候  在重建缓存, 一致性可以保证  但是  穿透大,容易给db造成压力

Mysql 读与写函数利用学习

语句简单记忆:         select load_file();         select '一句话' into outfile '网站路径' ; 1.Mysql 读与写函数 (1) 读取函数 load_file() (2) 写入函数 into outfile '' into dumpfile '' 2.Mysql读函数使用 (1)读配置文件语句 select load_file('/etc/httpd/conf/httpd.conf') select load_file('/etc/