10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

15.20.3设置InnoDB memcached插件

介绍如何设置daemon_memcachedMySQL服务器上的插件。因为memcached守护进程与MySQL服务器紧密集成,以避免网络流量和最小化延迟,您可以在每个使用此特性的MySQL实例上执行此过程。

请注意

在设置daemon_memcached插件,请咨询章节15.20.5,InnoDB memcached插件的安全注意事项了解防止未经授权的访问所需的安全程序。

先决条件

  • daemon_memcached该插件仅支持Linux、Solaris和macOS平台。不支持其他操作系统。

  • 从源代码构建MySQL时,必须使用-DWITH_INNODB_MEMCACHED =对.此构建选项在MySQL插件目录(plugin_dir),以运行daemon_memcached插件:

    • libmemcached.so:memcachedMySQL的daemon插件。

    • innodb_engine.so:一个InnoDBAPI插件memcached

  • libevent必须安装。

    • 如果您不是从源代码构建MySQL,则libevent库不包含在您的安装中。请使用操作系统的安装方法进行安装libevent1.4.12及以上版本。例如,您可能使用的操作系统不同apt-get百胜,或端口安装.例如,在Ubuntu Linux上,使用:

      安装libevent-dev
    • 如果你从源代码版本安装MySQL,libevent1.4.12与软件包捆绑在一起,位于MySQL源代码目录的顶层。如果您使用的是捆绑版libevent,无需处理。的本地系统版本libevent,您必须使用-DWITH_LIBEVENT生成选项设置为系统是的

安装和配置InnoDB memcached插件

  1. 配置daemon_memcached插件,以便与之交互InnoDB表,通过运行innodb_memcached_config.sql配置脚本,该脚本位于MYSQL_HOME/分享.此脚本安装innodb_memcache包含三个必需表的数据库(cache_policiesconfig_options,容器).它还安装demo_test中的示例表。测验数据库。

    mysql >源MYSQL_HOME/分享/ innodb_memcached_config.sql

    运行innodb_memcached_config.sql脚本是一次性操作。控件,如果稍后卸载并重新安装daemon_memcached插件。

    使用innodb_memcache;mysql>显示表+---------------------------+ | Tables_in_innodb_memcache  | +---------------------------+ | cache_policies | | config_options | |容器  | +---------------------------+ mysql >使用测试;mysql>显示表+----------------+ | 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插件内部简介”

  2. 激活daemon_memcached插件通过运行安装插件声明:

    mysql> INSTALL PLUGIN libmemcached soname

    插件安装完成后,每次MySQL服务器重启时都会自动激活。

验证InnoDB和memcached的设置

验证daemon_memcached插件设置,使用远程登录要发布的会话memcached命令。默认情况下,memcached守护进程监听端口11211。

  1. test.demo_test表格中的单行数据demo_test表的键值为AA

    telnet localhost 11211正在尝试127.0.0.1…已连接到本地主机。转义字符是'^]'。获取AA值AA 8 12 HELLO, HELLO结束
  2. 使用命令。

    设置BB 10 0 16 GOODBYE, GOODBYE存储

    地点:

    • 该命令是用来存储值的吗

    • BB是关键

    • 10操作的标志;忽视了memcached但可被客户用来表明任何类型的信息;指定0如果未使用

    • 0为过期时间(TTL);指定0如果未使用

    • 16提供的值块的长度以字节为单位吗

    • 再见,再见是存储的值吗

  3. 通过连接MySQL服务器,查询test.demo_test表格

    mysql> SELECT * FROM test.demo_test+----+------------------+------+------+------+ | c1 | c2 | c3 | c4 | c5  | +----+------------------+------+------+------+ | AA |你好,你好| 8 | 0 | 0 | | BB |再见,再见| 10 | 1 | 0  | +----+------------------+------+------+------+
  4. 返回到telnet会话并检索之前使用key插入的数据BB

    得到BB值BB 10 16再见,再见结束退出

如果关闭了MySQL服务器,也就同时关闭了集成memcached服务器,进一步尝试访问memcached数据失败,连接错误。通常情况下,memcached此时数据也会消失,当数据被加载回内存时,您将需要应用程序逻辑memcached重新启动。然而,InnoDBmemcached插件为您自动化这个过程。

当你重启MySQL时,得到操作再次返回您在前面存储的键-值对memcached会话。当一个键被请求并且相关的值还没有在内存缓存中,这个值会自动从MySQL中查询test.demo_test表格

创建一个新的表和列映射

这个例子展示了如何设置您自己的InnoDB表的daemon_memcached插件。

  1. 创建一个InnoDB表格表必须有一个索引唯一的键列。城市表的关键列为city_id,它被定义为主键。表还必须包括列旗帜中科院,到期值。可能有一个或多个值列。的城市表有三个值列(的名字状态国家).

    请注意

    类中添加了有效的映射,因此对列名没有特殊要求innodb_memcache.containers表格

    mysql> CREATE TABLE city (city_id VARCHAR(32), name VARCHAR(1024), state VARCHAR(1024), country VARCHAR(1024), flags INT, cas BIGINT UNSIGNED, expiry INT, primary key(city_id))
  2. 属性中添加一个条目innodb_memcache.containers表,这样daemon_memcached插件知道如何访问InnoDB表格条目必须满足innodb_memcache.containers表定义。有关每个字段的描述,请参见章节15.20.8,“InnoDB memcached插件内部简介”

    描述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) | | | NULL  | | +------------------------+--------------+------+-----+---------+-------+

    innodb_memcache.containers城市表的表项定义为:

    mysql> INSERT INTO innodb_memcache' containers ' (' name ',' db_schema ',' db_table ',' key_columns ',' value_columns ',' flags',' flags',' cas_column ',' expire_time_column ',' unique_idx_name_on_key ') 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如果这些列未使用。

  3. 更新innodb_memcache.containers表,重新启动daemon_memcache插件来应用更改。

    mysql>卸载插件mysql> INSTALL PLUGIN libmemcached soname
  4. 使用telnet,将数据插入城市表使用memcached命令。

    telnet localhost 11211正在尝试127.0.0.1…已连接到本地主机。转义字符是'^]'。set B 0 0 22 BANGALORE|BANGALORE|IN STORED
  5. 使用MySQL,查询test.city表,以验证插入的数据是否已存储。

    mysql> SELECT * FROM test.city+---------+-----------+-----------+---------+-------+------+--------+ | city_id名字| | | |国家国旗| cas |到期  | +---------+-----------+-----------+---------+-------+------+--------+ | 班加罗尔班加罗尔B | | | | 0 | 3 | 0  | +---------+-----------+-----------+---------+-------+------+--------+
  6. 使用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字段(如果未使用)。

  7. 使用telnet,发出一个memcached得到命令检索您使用MySQL插入的数据。

    得到H值H 0 22海得拉巴|泰伦加纳|

配置InnoDB memcached Plugin

传统的memcached配置选项可以在MySQL配置文件中指定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属性的共享库InnoDBmemcached插件。默认设置为innodb_engine.so

  • daemon_memcached_engine_lib_path方法的共享库所在目录的路径InnoDBmemcached插件。默认值是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:定义写操作的批提交大小(取代附加预谋增加12月,等等)。daemon_memcached_w_batch_size默认设置为1,以便在停机时不会丢失未提交的数据,并且底层表上的SQL查询可以访问最新的数据。当该值大于1时,每个写操作的计数器都增加添加增加12月,删除调用。一个flush_all调用重置读和写计数器。

缺省情况下,不需要修改daemon_memcached_engine_lib_namedaemon_memcached_engine_lib_path.您可以配置这些选项,例如,如果您想使用不同的存储引擎memcached(比如新开发银行memcached引擎)。

daemon_memcached插件配置参数可以在MySQL配置文件中指定mysqld启动字符串。它们生效时,你加载daemon_memcached插件。

当对daemon_memcached插件配置,重新加载插件以应用更改。为此,发出以下声明:

mysql>卸载插件mysql> INSTALL PLUGIN libmemcached soname

当插件重新启动时,配置设置、所需的表和数据将被保留。

有关启用和禁用插件的其他信息,请参见章节5.6.1,“安装和卸载插件”