目前我们有一个网站在 Centos 6.5 网络服务器上运行,具有直接管理功能。 APC 在过去配置并且运行良好,但一些阅读建议还实现 memcached 来缓存一些静态表(例如菜单)。
从 MySQL 5.6 开始,innoDB 表与 mysql 内存缓存守护进程兼容,因此我开始遵循以下指南:http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached-installing.html . 运行配置脚本并安装守护进程。
然而 Drupal memcache plugin看不到内存缓存正在运行。该模块显然正在检查 php memcached 守护进程,而我的守护进程已经在 mysql 中运行。
因为这两个扩展都称为 memcached.so,我们强烈地感觉到这是同一件事。实际上有两种不同的东西吗?Drupal 不支持 InnoDB memcached deamon,我是否需要两者(php 扩展来访问 mysql 扩展?),或者这应该有效,我们是不是出了什么问题?
更新
状态报告显示类似“未运行”的内容,但我的一位同事现在已经安装了 PHP PECL 扩展并且它似乎可以正常工作。但是后来还是不明白mysql innodb deamon插件是干什么的。它是不需要的,还是比 PHP 扩展更能改进数据库访问?
最佳答案
InnoDB 的 Memcached 接口(interface)是 MySQL 的一个特性,用于支持 memcached 协议(protocol),但以 InnoDB 作为后端存储。好像很多人对这意味着什么感到困惑,所以我将尝试解释一下。
虽然真正的 memcached 守护进程将数据存储在内存中,但 MySQL 将数据持久存储在 InnoDB 表中。 PHP 应用程序可以使用 memcached 扩展读取和写入数据,就像它们使用标准的 memcached 内存存储一样。然而,它们实际上是从 InnoDB 表中读取和写入行。
这比标准的 memcached 慢一些,因为它写入磁盘的开销大于访问内存的开销。但它比使用 SQL 读取和写入这些行要快一些,因为它跳过了 SQL 解析器和查询优化器的复杂性。
这确实是 MySQL 中的新功能:绕过 SQL,并通过一个简单但熟悉的界面直接访问 InnoDB 存储引擎。他们选择 memcached 的理由是,许多开发人员会熟悉它并且已经有工具和语言支持它。
InnoDB memcached 接口(interface)类似于 2010 年开发的名为 HandlerSocket 的早期实验性插件。http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html
这是一个 Percona 博客,显示了 InnoDB memcached 与 SQL 查询的相对速度测试:http://www.percona.com/blog/2013/03/29/mysql-5-6-innodb-memcached-plugin-as-a-caching-layer/
在评论中回复你的问题:
你可能误会了。 Memcached 中的数据从不。 MySQL 和 Memcached 之间没有自动同步。唯一的问题是 MySQL 模仿了 Memcached 的 API 和协议(protocol)。除了让开发人员熟悉 API 外,他们没有理由这样做。
当您使用“用于 InnoDB 的 Memcached API”时,您正在将您的应用程序连接到 mysqld 守护进程监听的端口。您对此连接的请求直接在 InnoDB 存储引擎中读取和写入行。中间没有 Memcached 实例。
关于mysql - 如何为mysql innodb配置memcached?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412852/
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO
我使用rails3.1+rspec和factorygirl。我对必填字段(validates_presence_of)的验证工作正常。我如何让测试将该事实用作“成功”而不是“失败”规范是:describe"Addanindustrywithnoname"docontext"Unabletocreatearecordwhenthenameisblank"dosubjectdoind=Factory.create(:industry_name_blank)endit{shouldbe_invalid}endend但是我失败了:Failures:1)Addanindustrywithnona