重庆思庄Oracle、Redhat认证学习论坛
标题: Mysql Memcached 插件安装 [打印本页]
作者: 郑全 时间: 2015-4-11 23:52
标题: Mysql Memcached 插件安装
Mysql Memcached 插件安装:
1、安装sql 脚本
- mysql < scripts/innodb_memcached_config.sql
2、进入mysql 客户端,安装插件
- mysql> install plugin daemon_memcached soname "libmemcached.so";
完成上面两步之后,mysql memcached 就安装完成了。下面可以进行一点测试:
- telnet localhost 11211
-
- set test 0 0 2
- 11
- STORED
- get test
- VALUE test 0 2
- 11
- END
说明set 和 get 已经能够正常使用了。
作者: 郑全 时间: 2015-4-11 23:53
二、说明
进入mysql 客户端,show databases; 后,你会发现多了一个库innodb_memcache
- mysql> use innodb_memcache;
- Database changed
- mysql> show tables;
- +---------------------------+
- | Tables_in_innodb_memcache |
- +---------------------------+
- | cache_policies |
- | config_options |
- | containers |
- +---------------------------+
- 3 rows in set (0.00 sec)
上述三张表都为memcached 的配置信息,分别存放cache 策略、配置和容器信息。先看containers 表
- mysql> select * from containers;
- +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
- | name | db_schema | db_table | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |
- +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
- | aaa | test | demo_test | c1 | c2 | c3 | c4 | c5 | idx |
- +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+
- 1 row in set (0.00 sec)
作者: 郑全 时间: 2015-4-11 23:53
说明,通过memcached set 的数据,放在test 库中的demo_test 表中,同时key 存放在表的c1 字段里,value 存放在c2 字段里。然后我们去test 库看看
- mysql> use test;
- Database changed
- mysql> select * from demo_test;
- +------+------+------+------+--------------+------+------+------+------+------+------+
- | cx | cy | c1 | cz | c2 | ca | CB | c3 | cu | c4 | C5 |
- +------+------+------+------+--------------+------+------+------+------+------+------+
- | 9 | 3 | AA | 2 | HELLO, HELLO | 8 | 8 | 0 | 1 | 3 | 0 |
- +------+------+------+------+--------------+------+------+------+------+------+------+
- 1 row in set (0.00 sec)
没有发现我们刚才set 的test?这里,需要设置一下数据库的transaction 级别,才能同步显示,否则,在64 位系统上,是设有batch size 的,超过32 个才会往数据库中同步
- sql> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
然后再去看看,刚才我们通过memcached 协议set 的值,出现了吧。
作者: 郑全 时间: 2015-4-11 23:53
注意:在有memcached client 连接的情况下,此表是锁定的,无法采用sql 进行修改
同时,似乎memcached 协议里设置有效时间,在这里无法生效,会一直保留?
在配置里,还有一张表我们需要注意的,cache_policies。看看它的创建语句
- CREATE TABLE `cache_policies` (
- `policy_name` varchar(40) NOT NULL,
- `get_policy` enum('innodb_only','cache_only','caching','disabled') NOT NULL,
- `set_policy` enum('innodb_only','cache_only','caching','disabled') NOT NULL,
- `delete_policy` enum('innodb_only','cache_only','caching','disabled') NOT NULL,
- `flush_policy` enum('innodb_only','cache_only','caching','disabled') NOT NULL,
- PRIMARY KEY (`policy_name`)
- ENGINE=InnoDB DEFAULT CHARSET=latin1
这些策略里,都有四个选项:innodb_only, cache_only, caching 和disabled。
innodb_only: 数据直接存入innodb engine 中
cache_only: 如同传统的memcache server,数据只存在memory 中
caching: memory 中缓存,如果找不到,再向innodb engine 中搜索
作者: 郑全 时间: 2015-4-11 23:57
注意,如果 mysql是原代码安装 mysql,需要在编译前,修改 CMakeList.txt
把 CMakeList.txt中的 :OPTION(WITH_INNODB_MEMCACHED "" OFF)
改为:OPTION(WITH_INNODB_MEMCACHED "enable innodb memcache" ON)
然后正常编译安装。
否则,编译后,没有 memcached功能。
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) |
Powered by Discuz! X3.2 |