10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.4 kb
手册页(邮政编码)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册摘录

14.21.3设置InnoDB memcached插件

本节描述如何设置daemon_memcached在MySQL服务器插件。因为memcached与MySQL服务器守护进程紧密集成,以避免网络流量和减少延迟,你每个MySQL实例上执行这个过程,使用这个特性。

请注意

之前的设置daemon_memcached插件,请咨询部分14.21.4,InnoDB memcached插件“安全注意事项”理解所需的安全程序,以防止未经授权的访问。

先决条件

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

  • 当从源代码构建MySQL,您必须建立-DWITH_INNODB_MEMCACHED =对。这个构建选项生成两个MySQL插件目录中的共享库(plugin_dir),需要运行daemon_memcached插件:

    • libmemcached.so:memcached守护进程MySQL插件。

    • innodb_engine.so:一个InnoDBAPI的插件memcached

  • libevent必须安装。

    • 如果你没有从源代码构建MySQL,libevent图书馆是不包括在您的安装。使用您的操作系统的安装方法安装libevent1.4.12或更高版本。例如,根据不同的操作系统,你可以使用apt-get,百胜,或端口安装。例如,在Ubuntu Linux,使用:

      sudo apt-get安装libevent-dev
    • 如果你从源代码安装MySQL版本,libevent1.4.12捆绑包和位于顶层的MySQL源代码目录。如果你使用捆绑的版本libevent,没有行动是必需的。如果你想使用一个本地系统的版本libevent,你必须建立MySQL-DWITH_LIBEVENT构建选项设置为系统是的

安装和配置InnoDB memcached插件

  1. 配置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 >使用测试;mysql >显示表;+ - - - - - - - - - - - - - - - - - + | Tables_in_test | + - - - - - - - - - - - - - - - - - + | demo_test | + - - - - - - - - - - - - - - - - - +

    这些表的innodb_memcache.containers表是最重要的。中的条目容器表提供一个映射InnoDB表列。每一个InnoDB表使用daemon_memcached插件需要一个条目容器表。

    innodb_memcached_config.sql脚本中插入一个单独的条目容器表提供的映射demo_test表。它还将一行数据插入demo_test表。这些数据可以立即验证安装后设置完成。

    从innodb_memcache mysql > SELECT *。容器\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样表,请参阅部分14.21.7”,InnoDB memcached插件内部“

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

    mysql >安装插件daemon_memcached soname“libmemcached.so”;

    一旦安装了插件,它会自动激活每次重新启动MySQL服务器。

验证InnoDB和memcached设置

来验证daemon_memcached插件安装,使用远程登录会议问题memcached命令。默认情况下,memcached守护进程监听端口11211。

  1. 检索的数据test.demo_test表。数据的行demo_test表的键值AA

    telnet localhost 11211尝试127.0.0.1…连接到localhost。转义字符“^]”。得到AA AA价值8 12你好,你好
  2. 插入数据使用命令。

    存储组BB 10 0 16再见,再见

    地点:

    • 命令来存储一个值吗

    • BB是关键

    • 10操作是一个国旗;忽视了memcached但可能使用的客户端显示任何类型的信息;指定0如果未使用

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

    • 16提供的值的长度是在字节块吗

    • 再见,再见存储的值吗

  3. 验证数据插入存储在由连接到MySQL服务器和MySQL查询test.demo_test表。

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

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

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

当你重新启动MySQL,得到操作再次返回的键值对存储在早些时候memcached会话。当一个关键要求和相关的值不是已经在内存缓存中,这个值是自动从MySQL查询test.demo_test表。

创建一个新表和列映射

这个例子展示了如何设置你自己的InnoDBdaemon_memcached插件。

  1. 创建一个InnoDB表。表必须有一个惟一的索引键列。城市表的键列city_id定义主键。表必须包含的列旗帜,中科院,到期值。可能有一个或多个列的值。的城市桌子有三个值列(的名字,状态,国家)。

    请注意

    没有特殊要求对列名一样沿着被添加到一个有效的映射innodb_memcache.containers表。

    mysql > CREATE TABLE城市(city_id VARCHAR(32),名字VARCHAR(1024),国家VARCHAR(1024),国家VARCHAR(1024),旗帜INT,中科院的BIGINT无符号,INT到期,主键(city_id))引擎= InnoDB;
  2. 添加一个条目innodb_memcache.containers表,这样daemon_memcached知道如何访问插件InnoDB表。条目必须满足innodb_memcache.containers表定义。每个字段的描述,请参阅部分14.21.7”,InnoDB memcached插件内部“

    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表条目的城市表的定义是:

    mysql >插入“innodb_memcache”。“容器”(‘名’,‘db_schema’,‘db_table’,‘key_columns’,‘value_columns’,“旗帜”,‘cas_column’,‘expire_time_column’,‘unique_idx_name_on_key’)值(“违约”、“测试”,“城市”,“city_id”,“名字| |国家状态”,“旗帜”,“中科院”,“到期”,“主要”);
    • 默认的被指定为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 >卸载插件daemon_memcached;mysql >安装插件daemon_memcached soname“libmemcached.so”;
  4. 使用telnet,将数据插入城市表的使用memcached命令。

    telnet localhost 11211尝试127.0.0.1…连接到localhost。转义字符“^]”。设置B 0 0 22班加罗尔班加罗尔| |存储
  5. 使用MySQL,查询test.city表来验证您插入的数据存储。

    从test.city mysql > SELECT *;+ - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + + | city_id | |名称状态| |国家国旗| cas | |到期+ - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - -班加罗尔班加罗尔B + | | | | | 0 | 3 | 0 | + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + +
  6. 使用MySQL,插入额外的数据test.city表。

    mysql >插入城市值(“C”、“奈”、“泰米尔纳德邦”,“在”,0,0,0);mysql >插入城市值(“D”,“新德里”,“新德里”,“在”,0,0,0);mysql >插入城市值(“H”,海德拉巴,建邦者“纳”,“在”,0,0,0);mysql >插入城市值(“米”、“孟买”,“马哈拉施特拉邦”,“在”,0,0,0);
    请注意

    建议您指定的值0旗帜,cas_column,expire_time_column如果未使用字段。

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

    建邦者得到H值H 0 22海德拉巴|纳|在结束

配置InnoDB memcached插件

传统的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插件。默认为空,表示插件的目录。

  • daemon_memcached_r_batch_size读操作:定义批量提交大小(得到)。它指定的数量memcached一个后读操作提交发生。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(如NDBmemcached引擎)。

daemon_memcached插件配置参数可能或MySQL中指定的配置文件mysqld启动字符串。他们加载时生效daemon_memcached插件。

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

mysql >卸载插件daemon_memcached;mysql >安装插件daemon_memcached soname“libmemcached.so”;

配置设置,要求表和数据保存插件时重新启动。

关于启用和禁用插件的更多信息,请参阅5.5.1部分,“安装和卸载插件”