介绍如何设置daemon_memcached
MySQL服务器上的插件。因为memcacheddaemon与MySQL服务器紧密集成,以避免网络流量和最小化延迟,您可以在使用此特性的每个MySQL实例上执行此进程。
在设置之前daemon_memcached
插件,请咨询第15.20.5节“InnoDB Memcached Plugin的”安全考虑“了解防止未经授权访问所需的安全程序。
这
daemon_memcached
插件仅支持Linux,Solaris和MacOS平台。不支持其他操作系统。在从源代码构建MySQL时,必须使用
-dwith_innodb_memcached = On.
.此构建选项在MySQL插件目录中生成两个共享库(plugin_dir
)来运行daemon_memcached
插入:libmemcached.so
: 这memcached守护程序插件到mysql。innodb_engine.so
:一个InnoDB
API的插件memcached.
libevent
必须安装。如果您没有从源代码构建MySQL,那么
libevent
库未包含在您的安装中。请使用操作系统的安装方法进行安装libevent
1.4.12或更高版本。例如,根据操作系统,您可以使用apt-get
那百胜
,或端口安装
.例如,在Ubuntu Linux上,使用:sudo apt-get安装libevent-dev
如果你从源代码版本安装MySQL,
libevent
1.4.12是与包捆绑的,位于MySQL源代码目录的顶层。如果使用捆绑版本libevent
,无需操作。如果要使用本地系统版本libevent
,你必须构建MySQL与-DWITH_LIBEVENT
生成选项设置为系统
或是的
.
配置
daemon_memcached
插件,所以它可以与InnoDB
表,通过运行innodb_memcached_config.sql
配置脚本,位于
.此脚本安装MYSQL_HOME
/分享innodb_memcache
数据库包含三个必需的表(cache_policies.
那config_options
,容器
).它也安装了demo_test
样本表测试
数据库。mysql>来源MYSQL_HOME/分享/ innodb_memcached_config.sql
跑
innodb_memcached_config.sql
脚本是一次性操作。如果稍后卸载并重新安装daemon_memcached
插件。MySQL>使用InnoDB_Memcache;mysql>显示表格;+ ------------------------ + |tables_in_innodb_memcache |+ ------------------------ + |cache_policies ||config_options ||容器| +---------------------------+ mysql> USE test; mysql> SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | demo_test | +----------------+
这些表格,
innodb_memcache.containers
桌子是最重要的。中的条目容器
表提供到的映射InnoDB
表列。每一个InnoDB
与daemon_memcached
控件中的条目容器
表格这
innodb_memcached_config.sql
脚本插入单个条目容器
的映射demo_test
表格对象中插入单行数据demo_test
表格此数据允许您在安装完成后立即验证安装。mysql> SELECT * FROM innodb_memcache。容器\G *************************** 1. row *************************** name: aaa db_schema: test db_table: demo_test key_columns: c1 value_columns: c2 flags: c3 cas_column: c4 expire_time_column: c5 unique_idx_name_on_key: PRIMARY mysql> SELECT * FROM test.demo_test; +----+------------------+------+------+------+ | c1 | c2 | c3 | c4 | c5 | +----+------------------+------+------+------+ | AA | HELLO, HELLO | 8 | 0 | 0 | +----+------------------+------+------+------+
有关的更多信息
innodb_memcache
桌子和桌子demo_test
样表,请参阅章节15.20.8,“InnoDB memcached Plugin Internals”.激活
daemon_memcached
插件,通过运行安装插件
声明:mysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
安装插件后,每次重新启动MySQL Server时会自动激活它。
来验证daemon_memcached
插件设置,使用telnet.会议发行memcached命令。默认情况下,memcached守护程序在端口11211上侦听。
从
test.demo_test.
表格中的单行数据demo_test
表的键值为AA.
.telnet localhost 11211 Trying 127.0.0.1…连接到localhost。转义字符是'^]'。get AA VALUE AA 8 12 HELLO, HELLO END
使用
放
命令。设置BB 10 0 16再见,再见储存
在哪里:
放
是存储值的命令吗BB.
是关键10
是操作的标志;忽视了memcached但是客户可以用来指示任何类型的信息;指定0.
如果未使用0.
为过期时间(TTL);指定0.
如果未使用16
所提供的值块的长度是否以字节为单位再见,再见
是存储的值
通过连接到MySQL服务器并查询
test.demo_test.
表格mysql> SELECT * FROM test.demo_test;+----+------------------+------+------+------+ | c1 | c2 | c3 | c4 | c5 | +----+------------------+------+------+------+ | AA |你好,你好| 8 | 0 | 0 | | BB |再见,再见| 10 | 1 | 0 | +----+------------------+------+------+------+
返回到telnet会话并检索您先前使用键插入的数据
BB.
.得到BB值BB 10 16再见,再见结束退出
如果您关闭了MySQL服务器,也会关闭集成的服务器memcached服务器,进一步尝试访问memcached数据失败,出现连接错误。通常情况下,memcached此时数据也消失了,您需要应用程序逻辑将数据加载回内存中memcached重新启动。然而,InnoDB
memcached插件为您自动化这个过程。
当你重启MySQL时,得到
操作再次返回先前存储的键值对memcached会话。当一个键被请求时,关联的值还没有在内存缓存中,这个值会自动从MySQL查询test.demo_test.
表格
这个例子展示了如何设置你自己的InnoDB
表daemon_memcached
插件。
创建一个
InnoDB
表格表必须具有具有惟一索引的键列。城市表的键列为city_id
,定义为主键。表还必须包括旗帜
那中科院
,到期
值。可能有一个或多个值列。这城市
表有三个值列(的名字
那状态
那国家
).笔记属性中添加了有效的映射,对于列名没有特殊要求
innodb_memcache.containers
表格MySQL> Create Table City(City_ID varchar(32),名称varchar(1024),状态varchar(1024),country varchar(1024),标志int,cas bigint unsigned,Expiry int,主键(City_ID))引擎= InnoDB;
控件中添加一个条目
innodb_memcache.containers
表格,以便daemon_memcached
插件知道如何访问InnoDB
表格条目必须满足innodb_memcache.containers
表定义。有关每个字段的描述,请参阅章节15.20.8,“InnoDB memcached Plugin Internals”.mysql >描述innodb_memcache.containers;+------------------------+--------------+------+-----+---------+-------+ | 字段默认零关键| | | | |类型多 | +------------------------+--------------+------+-----+---------+-------+ | 名字| varchar (50) | | PRI零| | | | db_schema | varchar(250) | | |零| | | db_table | varchar(250) | | |零| | | key_columns |varchar(250) | | |零| | | value_columns | varchar(250) |是| |零| | | |旗帜varchar (250) | | | 0 | | | cas_column | varchar(250) |是| |零| | | expire_time_column | varchar(250) |是| |零| | | unique_idx_name_on_key | varchar(250) | | |零| |+------------------------+--------------+------+-----+---------+-------+
这
innodb_memcache.containers
city表的表项定义为:mysql> INSERT INTO ' innodb_memcache '。VALUES ('default', 'test', 'city', 'city_id', 'name|state|country', 'flags','cas','expiry','PRIMARY');
默认的
为containers.name
列,以配置城市
表作为默认值InnoDB
要与表一起使用daemon_memcached
插件。多
InnoDB
表列(的名字
那状态
那国家
)映射为containers.value_columns
用一个“|“分隔符。这
旗帜
那cas_column
,expire_time_column
的字段innodb_memcache.containers
表在使用daemon_memcached
插件。然而,一个指定的InnoDB
每个都需要表列。插入数据时,请指定0.
对于这些列,如果它们未使用。
更新后
innodb_memcache.containers
表,重新启动daemon_memcache
插件来应用更改。mysql>卸载PLUGIN daemon_memcachedmysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
使用telnet将数据插入
城市
表的使用memcached放
命令。telnet localhost 11211 Trying 127.0.0.1…连接到localhost。转义字符是'^]'。set B 0 0 22 BANGALORE|BANGALORE|IN STORED .设置B 0 0 22 BANGALORE|
使用MySQL查询
test.city
表来验证插入的数据是否已存储。mysql>从test.city中选择*;+ --------- + ---------- + ----------- + --------- + ------ + ------ + -------- + |city_id |名称|国家|国家|标志|CAS |到期+ --------- + ---------- + ----------- + --------- + ------ + ------ + -------- + | B | BANGALORE | BANGALORE | IN | 0 | 3 | 0 | +---------+-----------+-----------+---------+-------+------+--------+
使用MySQL将其他数据插入到
test.city
表格mysql> INSERT INTO city VALUES ('C','钦奈','泰米尔纳德邦','IN', 0, 0,0);mysql> INSERT INTO city VALUES ('D','德里','德里','IN', 0, 0, 0);mysql> INSERT INTO city VALUES ('H','HYDERABAD','TELANGANA','IN', 0, 0, 0);mysql> INSERT INTO city VALUES ('M','MUMBAI','MAHARASHTRA','IN', 0, 0, 0);
笔记建议您指定一个值
0.
为旗帜
那cas_column
,expire_time_column
字段,如果它们未被使用。使用telnet,发出amemcached
得到
命令检索使用MySQL插入的数据。获取H值H 0 22海德拉巴| Telangana |在结束时
传统的memcached
可以在MySQL配置文件或A中指定配置选项mysqld.的参数中编码的启动字符串daemon_memcached_option.
配置参数。memcached
配置选项在插件加载时生效,每次MySQL服务器启动时都会发生。
例如,制作memcached请指定监听端口11222,而不是默认端口11211-p11222
作为一个论点daemon_memcached_option.
配置选项:
mysqld……——daemon_memcached_option = " -p11222 "
其他memcached选项可以被编码到daemon_memcached_option.
字符串。例如,您可以指定减少最大同时连接数的选项,更改键值对的最大内存大小,或为错误日志启用调试消息,等等。
还有特定于配置选项daemon_memcached
插件。这些包括:
daemon_memcached_engine_lib_name
:指定实现的共享库InnoDB
memcached插件。默认设置是innodb_engine.so
.daemon_memcached_engine_lib_path
:包含实现的共享库的目录的路径InnoDB
memcached插件。默认值为null,表示插件目录。daemon_memcached_r_batch_size
:定义读取操作的批处理提交大小(得到
).它指定数量memcached读取操作后a提交发生。daemon_memcached_r_batch_size
默认设置为1,所以每得到
控件中最近提交的数据InnoDB
表,是否通过更新数据memcached或SQL。当该值大于1时,读取操作的计数器将随着每一个值的增加而增加得到
调用。一个Flush_all.
调用将重置读和写计数器。daemon_memcached_w_batch_size
:定义写操作的批提交大小(放
那取代
那附加
那预谋
那Inc.
那decr
等等)。daemon_memcached_w_batch_size
默认设置为1,以便在停机时不会丢失未提交的数据,并且在基础表上的SQL查询可以访问最近的数据。当该值大于1时,写操作的计数器每增加一次添加
那放
那Inc.
那decr
,删除
调用。一个Flush_all.
调用将重置读和写计数器。
缺省情况下,不需要修改daemon_memcached_engine_lib_name
或daemon_memcached_engine_lib_path
.例如,如果要使用其他存储引擎,您可能会配置这些选项memcached(比如新开发银行memcached引擎)。
daemon_memcached
MySQL插件的配置参数可以在MySQL配置文件中指定,也可以在mysqld.启动字符串。控件时生效daemon_memcached
插件。
当对daemon_memcached
插件配置,重新加载插件以应用更改。为此,请发表以下声明:
mysql>卸载PLUGIN daemon_memcachedmysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
当插件重新启动时,配置设置、必需的表和数据将被保留。
有关启用和禁用插件的其他信息,请参见第5.6.1节,“插件的安装和卸载”.