Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2758203
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Mysql/postgreSQL

2014-08-03 22:39:22

                                            mysql和memcached集成

      mysql 5.6以后的版本提供了一个memcached的plugin,通过memcached plugin
应用程序可以直接通过memcached协议来对innodb表进行操作,绕开了sql层的处理.
而mysql可以为memcached提供持久化,且mysql复制支持 memcached,结合两种软件的长处,
带好的优点是显而易见的.

   首先执行sql,主要创建了containers,cache_policies和config_options三个表

mysql> source /usr/local/mysql/share/innodb_memcached_config.sql;
Query OK, 1 row affected (0.00 sec)

安装plugin

mysql> install plugin daemon_memcached  soname "libmemcached.so";
Query OK, 0 rows affected (0.01 sec)


检查plugin是否安装成功,端口是否打开
mysql> show plugins;
................................

| daemon_memcached            | ACTIVE   | DAEMON             | libmemcached.so | GPL     |
+-----------------------------+----------+--------------------+-----------------+---------+
47 rows in set (0.01 sec)


[root@cscscslocalhost share]# netstat -nltp | grep mysqld
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      30957/mysqld       
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      30957/mysqld   --memcached端口.


测试一下,在test的schema创建表test1

mysql>  create table test1(
    ->  a varchar(100) not null,
    ->  b varchar(100) not null,
    ->   c varchar(100) not null,
    ->    flag int,
    ->    cas_column int,
    ->    expire_time int,
    ->     primary key(a));
Query OK, 0 rows affected (0.01 sec)


如果表要支持memcached的读取,需要增加三列,这点很不方便.

mysql> insert into containers values('c','test','test2','a','b|c','flag','cas_column','expire_time','PRIMARY');
Query OK, 1 row affected (0.00 sec)

把能让memcached操作的表配置信息存放到containers表中 。


在test1表中insert 一行数据.
mysql> insert into test.test2 values('b','df','cd',0,0,0);
Query OK, 1 row affected (0.01 sec)


通过memcached来get刚才用sql存入的数据

[root@cscscslocalhost share]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
get @@c.b
END
get @@c.b
VALUE @@c.b 0 5
df|cd
END

阅读(5339) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~