当前位置: 首页 > news >正文

怎么用织梦做自己的网站app运营

怎么用织梦做自己的网站,app运营,正规的徐州网站开发,网站如何免费做SEO优化介绍 在实际项目中#xff0c;MySQL数据库服务器有时会位于另外一台主机#xff0c;需要通过网络来访问数据库#xff1b;即使应用程序与MySQL数据库在同一个主机中#xff0c;访问MySQL也涉及到磁盘IO操作#xff08;MySQL也有一些数据预读技术#xff0c;能够减少磁盘I…介绍 在实际项目中MySQL数据库服务器有时会位于另外一台主机需要通过网络来访问数据库即使应用程序与MySQL数据库在同一个主机中访问MySQL也涉及到磁盘IO操作MySQL也有一些数据预读技术能够减少磁盘IO读写此部分后续继续研究总之直接从MySQL中读取数据不如直接从内存中读取数据来的效率高。为了提高数据库访问效率人们采用了各种各样的方法其中方法之一就是使用一个给予内存的缓存系统放置在数据库和应用程序之间。在查找数据的时候首先从内存中查找如果找到则使用如果没有找到那么再真正访问数据库。这种方法在一些场景下例如频繁查找相同数据能够提高系统的整体效率。 本文的主要目的即介绍上文说的这样一种方法采用redis nosql数据库作为Mysql数据库的缓存在查找的时候首先查找redis缓存如果找到则返回结果如果在redis中没有找到那么查找Mysql数据库找到的花则返回结果并且更新redis如果没有找到则返回空。对于写入的情况直接写入mysql数据库mysql数据库通过触发器及UDF机制自动把变更的内容更新到redis中。 框图   读取步骤 client读取redis,如果命中返回结果如果没有命中转到2.client读取数据库在数据库中没有查到返回空在数据库中查到了返回查到的结果并更新Redis。 写入步骤client修改/删除或者新增数据到MySQL。MySQL的触发器调用用户自定义的UDF。UDF把修改/删除或者新增的数据更新到redis中。 代码实现 软件需求 redis server与client安装redis编程相关的c库。 mysql server安装mysql-devel包的安装此包包含操作mysql数据库的C语言API包。 实现步骤 6. 安装并验证redis 127.0.0.1:6379 hgetall w3ckey (empty list or set) #最开始在reids中没有w3ckey的K-V对。 127.0.0.1:6379安装MySQL数据库服务器 2.1 创建MySQL数据库的脚本如下 drop database if exists mysqlRedis; create database mysqlRedis; use mysqlRedis;create table test1(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(64),age INT,description VARCHAR(1000),primary key(id));2.2 创建UDF使用的动态库 #include stdio.h #include stdlib.h #include mysql.h #include string.h #include hiredis/hiredis.hint gxupdate(UDF_INIT * initid, UDF_ARGS * args, char * is_null, char * error) {redisContext * c redisConnect(127.0.0.1, 6379);if(c-err) {redisFree(c);return 1;}/*//如果设有密码为ubunturedisReply *reply;char strReply[] AUTH ubuntu;reply (redisReply*)redisCommand(c, strReply);freeReplyObject(reply);reply NULL;*/const char * command1 HMSET w3ckey id %d name %s age %d description %s;redisReply * r (redisReply *)redisCommand(c, command1,*(int*)args-args[0], args-args[1], *(int *)args-args[2], args-args[3]);if (r NULL) {return 1;}if (!((r-type REDIS_REPLY_STATUS) (strcasecmp(r-str, OK) 0))) {freeReplyObject(r);redisFree(c);return 1;}freeReplyObject(r);return 0; }my_bool gxupdate_init(UDF_INIT * initid, UDF_ARGS * args, char * message) {return 0; }编译为动态库 gcc -shared -fPIC -I /usr/include/mysql -o udfredis.so mysqlUDFdemo.c /usr/local/lib/libhiredis.a 编译完成之后拷贝动态库udfgx.so到 /usr/lib/mysql/plugin/文件夹中并修改成用户对应权限。 2.3 配置udf与trigger。 use mysqlRedis;drop function if exists gxupdate; create function gxupdate returns INTEGER soname udfredis.so;drop trigger if exists insert_redis; drop trigger if exists update_redis; drop trigger if exists delete_redis;delimiter |create trigger insert_redisafter insert on test1for each rowbegindeclare ret int;select gxupdate(NEW.id, NEW.name, NEW.age, NEW.description) into ret; #必须加into ret否则返回错误ERROR 1415 (0A000) #at line 6: Not allowed to return a result set from a trigger #insert只有NEW变量。 #update有NEW和OLD变量。 #delete只有OLD变量。 end|create trigger update_redisafter update on test1for each rowbegindeclare ret int;select gxupdate(NEW.id, NEW.name, NEW.age, NEW.description) into ret;end|create trigger delete_redisafter delete on test1for each rowbegindeclare ret int;select gxupdate(OLD.id, OLD.name, OLD.age, OLD.description) into ret;end|delimiter ;注意在MySQL中创建UDF的时候insert, update和delete不能写成一个触发器只能分别定义成三个触发器。 测试 查看redis [rootVM_24_16_centos mysql_redis]# redis-cli 127.0.0.1:6379 hgetall w3ckey (empty list or set) 127.0.0.1:6379 redis中无key w3ckey 对应的value。 insert MySQL mysql insert into test1 (name, age, description) values (ggglwlop, 23, ddddgdg); Query OK, 1 row affected (0.02 sec)mysql 插入mysql。 查看redis 127.0.0.1:6379 hgetall w3ckey 1) name 2) ggglwlop 3) description 4) ddddgdg 5) likes 6) 27 7) visitors 8) 23 127.0.0.1:6379 MySQL中有了对应的数据说明mysql通过trigerudf的方式把改动更新到了redis中。 有用的链接 http://blog.csdn.net/socho/article/details/52292064 https://www.cnblogs.com/linuxbug/p/4950626.html https://www.cnblogs.com/tommy-huang/p/4703514.html 使用redis作为mysql缓存时的redis结构设计。 http://blog.csdn.net/shikaiwencn/article/details/51792059 需要根据实际需求来灵活设计redis kv关系。 https://www.cnblogs.com/bruceleeliya/archive/2009/05/23/Linux-C-Mysql.html 使用mysql的C API访问mysql。 https://www.2cto.com/database/201110/108925.html #mysql udf。 https://www.cnblogs.com/linuxbug/p/4950626.html #udf使用的一个例子。 https://www.jianshu.com/p/4381a38403a1 http://blog.csdn.net/socho/article/details/52292064
http://www.yutouwan.com/news/57021/

相关文章:

  • 网站的设计流程是怎么样的?深圳抖音推广公司
  • 发帖秒收录的网站个人如何做微商城网站
  • 同ip网站做排名seo建设网站公司中
  • 网站登录页做多大尺寸的太原小程序商城制作
  • 秦皇岛保障性住房官网重庆seo整站优化报价
  • 企业网站怎么搜索优化建设部网站监理工程师查询
  • 自适应网站开发书籍梦织做网站
  • 活动网站推广方案科技袁人
  • 京润珍珠企业网站优化电商网站模板建站
  • 域名网站注册认证德州网站制作公司
  • 云尚网络建站wordpress 文章缩略图
  • 网站导航固定代码网址大全浏览器
  • 广州信息流推广公司seo工具排行榜
  • 做社交网站有哪些厂房外墙设计效果图
  • 苏州个人网站建设德州市建设工程质监站网站
  • 人力资源公司网站建设方案内江市建设培训中心网站
  • 网站论坛制作市场代理招商信息
  • 关于做服饰网站的首页网站前台设计及开发是做什么的
  • 网站建设方案撰写logo设计公司深圳
  • dw做网站后台国内建筑公司排名
  • 网站建设客户需求分析调研表格制作教程入门视频
  • 网站建设违约责任杭州网站建设哪家设计好
  • 单页淘宝客网站模板wordpress 阅读
  • 哪个网站可以做前端项目查备案网站备案
  • 织梦网站模板免费下载网络营销网站 优帮云
  • 系统建站wordpress ajax分页插件
  • 商城网站服务器租用广州哪里能买森海塞尔
  • 进入网站自动全屏怎么做咸宁做网站
  • 什么是网站管理系统版面设计图大全
  • 用什么软件上传网站重庆建设工程信息网查询系统