重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2195|回复: 4
打印 上一主题 下一主题

Mysql Memcached 插件安装

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-11 23:52:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Mysql Memcached 插件安装: 
1、安装sql 脚本 
Java代码  收藏代码
  1. mysql < scripts/innodb_memcached_config.sql  


2、进入mysql 客户端,安装插件 
Java代码  收藏代码
  1. mysql> install plugin daemon_memcached soname "libmemcached.so";  


完成上面两步之后,mysql memcached 就安装完成了。下面可以进行一点测试: 

Java代码  收藏代码
  1. telnet localhost 11211  
  2.   
  3. set test 0 0 2  
  4. 11  
  5. STORED  
  6. get test  
  7. VALUE test 0 2  
  8. 11  
  9. END  


说明set 和 get 已经能够正常使用了。 


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2015-4-11 23:53:12 | 只看该作者
二、说明 


进入mysql 客户端,show databases; 后,你会发现多了一个库innodb_memcache 
Java代码  收藏代码
  1. mysql> use innodb_memcache;  
  2. Database changed  
  3. mysql> show tables;  
  4. +---------------------------+  
  5. | Tables_in_innodb_memcache |  
  6. +---------------------------+  
  7. | cache_policies            |  
  8. | config_options            |  
  9. | containers                |  
  10. +---------------------------+  
  11. 3 rows in set (0.00 sec)  


上述三张表都为memcached 的配置信息,分别存放cache 策略、配置和容器信息。先看containers 表 
Java代码  收藏代码
  1. mysql> select * from containers;  
  2. +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+  
  3. | name | db_schema | db_table  | key_columns | value_columns | flags | cas_column | expire_time_column | unique_idx_name_on_key |  
  4. +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+  
  5. | aaa  | test      | demo_test | c1          | c2            | c3    | c4         | c5                 | idx                    |  
  6. +------+-----------+-----------+-------------+---------------+-------+------------+--------------------+------------------------+  
  7. 1 row in set (0.00 sec)  


回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2015-4-11 23:53:44 | 只看该作者
说明,通过memcached set 的数据,放在test 库中的demo_test 表中,同时key 存放在表的c1 字段里,value 存放在c2 字段里。然后我们去test 库看看 
Java代码  收藏代码
  1. mysql> use test;  
  2. Database changed  
  3. mysql> select * from demo_test;  
  4. +------+------+------+------+--------------+------+------+------+------+------+------+  
  5. | cx   | cy   | c1   | cz   | c2           | ca   | CB   | c3   | cu   | c4   | C5   |  
  6. +------+------+------+------+--------------+------+------+------+------+------+------+  
  7. 9    |    3 | AA   |    2 | HELLO, HELLO |    8 |    8 |    0 |    1 |    3 |    0 |  
  8. +------+------+------+------+--------------+------+------+------+------+------+------+  
  9. 1 row in set (0.00 sec)  


没有发现我们刚才set 的test?这里,需要设置一下数据库的transaction 级别,才能同步显示,否则,在64 位系统上,是设有batch size 的,超过32 个才会往数据库中同步 
Sql代码  收藏代码
  1. sql> SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;  


然后再去看看,刚才我们通过memcached 协议set 的值,出现了吧。 
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2015-4-11 23:53:55 | 只看该作者
注意:在有memcached client 连接的情况下,此表是锁定的,无法采用sql 进行修改 
同时,似乎memcached 协议里设置有效时间,在这里无法生效,会一直保留? 
在配置里,还有一张表我们需要注意的,cache_policies。看看它的创建语句 
Sql代码  收藏代码
  1. CREATE TABLE `cache_policies` (  
  2.  `policy_name` varchar(40) NOT NULL,  
  3.  `get_policy` enum('innodb_only','cache_only','caching','disabled'NOT NULL,  
  4.  `set_policy` enum('innodb_only','cache_only','caching','disabled'NOT NULL,  
  5.  `delete_policy` enum('innodb_only','cache_only','caching','disabled'NOT NULL,  
  6.  `flush_policy` enum('innodb_only','cache_only','caching','disabled'NOT NULL,  
  7.  PRIMARY KEY (`policy_name`)  
  8.  ENGINE=InnoDB DEFAULT CHARSET=latin1  


这些策略里,都有四个选项:innodb_only, cache_only, caching 和disabled。 
    innodb_only: 数据直接存入innodb engine 中 
    cache_only: 如同传统的memcache server,数据只存在memory 中 
    caching: memory 中缓存,如果找不到,再向innodb engine 中搜索 
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-4-11 23:57:19 | 只看该作者

注意,如果 mysql是原代码安装 mysql,需要在编译前,修改 CMakeList.txt

 

把 CMakeList.txt中的 :OPTION(WITH_INNODB_MEMCACHED "" OFF)
改为:OPTION(WITH_INNODB_MEMCACHED "enable innodb memcache" ON)
然后正常编译安装。

 

否则,编译后,没有 memcached功能。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-27 11:29 , Processed in 0.087813 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表