您的位置:首页 > 数据库 > Memcache

centos6.4配置mysql+memcached

2017-01-16 09:45 211 查看
操作系统:CentOS6.4 64bit

mysql:5.1.66

1、安装libevent和memcached

2、下载并安装libmemcached-0.34
0.37以后的版本,memcached_functions_mysql-1.0与之memcached.h不匹配,会有以下错误
servers.c: In function ‘memc_servers_set’: 
servers.c:121: error: ‘memcached_st’ has no member named ‘hosts’ 

./configure --prefix=/usr/local/libmemcached34 --with-memcached=/usr/bin/memcached
make && make install
echo "/usr/local/libmemcached34" > /etc/ld.so.conf.d/memcached-x86_64.conf
ldconfig

3、下载并安装memcached_functions_mysql-1.0
要安装mysql-devl 编译memcached_functions_mysql-1.0需要mysql的头文件
./configure --prefix=/usr/local/memcache_functions_mysql-1.0 --with-mysql=/usr/bin/mysql_config --with-libmemcached=/usr/local/libmemcached34
make && make install

4、将memcached_functions_mysql-1.0源码下的function拷贝到mysql的plugin
cp sql/libmemcached_functions_mysql.* /usr/lib64/mysql/plugin/

5、将function导入mysql
memcached_functions_mysql-1.0安装包目录下有个sql目录,将两个sql脚本install_functions.sql和trigger_fun.sql导入mysql
cd /home/memcached_functions_mysql-1.0/sql;
mysql> source install_functions.sql;
mysql> source trigger_fun.sql;
mysql> select * from mysql.func;

+------------------------------+-----+---------------------------------+----------+

| name                         | ret | dl                              | type     |

+------------------------------+-----+---------------------------------+----------+

| memc_add                     |   2 | libmemcached_functions_mysql.so | function |

| memc_add_by_key              |   2 | libmemcached_functions_mysql.so | function |

| memc_servers_set             |   2 | libmemcached_functions_mysql.so | function |

| memc_server_count            |   2 | libmemcached_functions_mysql.so | function |

| memc_set                     |   2 | libmemcached_functions_mysql.so | function |

| memc_set_by_key              |   2 | libmemcached_functions_mysql.so | function |

| memc_cas                     |   2 | libmemcached_functions_mysql.so | function |

| memc_cas_by_key              |   2 | libmemcached_functions_mysql.so | function |

| memc_get                     |   0 | libmemcached_functions_mysql.so | function |

| memc_get_by_key              |   0 | libmemcached_functions_mysql.so | function |

| memc_get_cas                 |   2 | libmemcached_functions_mysql.so | function |

| memc_get_cas_by_key          |   2 | libmemcached_functions_mysql.so | function |

| memc_delete                  |   2 | libmemcached_functions_mysql.so | function |

| memc_delete_by_key           |   2 | libmemcached_functions_mysql.so | function |

| memc_append                  |   2 | libmemcached_functions_mysql.so | function |

| memc_append_by_key           |   2 | libmemcached_functions_mysql.so | function |

| memc_prepend                 |   2 | libmemcached_functions_mysql.so | function |

| memc_prepend_by_key          |   2 | libmemcached_functions_mysql.so | function |

| memc_increment               |   2 | libmemcached_functions_mysql.so | function |

| memc_decrement               |   2 | libmemcached_functions_mysql.so | function |

| memc_replace                 |   2 | libmemcached_functions_mysql.so | function |

| memc_replace_by_key          |   2 | libmemcached_functions_mysql.so | function |

| memc_servers_behavior_set    |   2 | libmemcached_functions_mysql.so | function |

| memc_servers_behavior_get    |   0 | libmemcached_functions_mysql.so | function |

| memc_behavior_set            |   2 | libmemcached_functions_mysql.so | function |

| memc_behavior_get            |   0 | libmemcached_functions_mysql.so | function |

| memc_list_behaviors          |   0 | libmemcached_functions_mysql.so | function |

| memc_list_hash_types         |   0 | libmemcached_functions_mysql.so | function |

| memc_list_distribution_types |   0 | libmemcached_functions_mysql.so | function |

| memc_udf_version             |   0 | libmemcached_functions_mysql.so | function |

| memc_libmemcached_version    |   0 | libmemcached_functions_mysql.so | function |

| memc_stats                   |   0 | libmemcached_functions_mysql.so | function |

| memc_stat_get_keys           |   0 | libmemcached_functions_mysql.so | function |

| memc_stat_get_value          |   0 | libmemcached_functions_mysql.so | function |

+------------------------------+-----+---------------------------------+----------+

6、启动memcached
memcached -d -u root

7、mysql配置memcached  // 注意:这个步骤,每次重启mysql之后,都要执行
mysql> use test;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select memc_servers_set('127.0.0.1:11211');    

+-------------------------------------+

| memc_servers_set('127.0.0.1:11211') |

+-------------------------------------+

|                                   0 |

+-------------------------------------+

1 row in set (0.00 sec)

mysql> select memc_servers_behavior_set('MEMCACHED_BEHAVIOR_NO_BLOCK','1'); 

+--------------------------------------------------------------+

| memc_servers_behavior_set('MEMCACHED_BEHAVIOR_NO_BLOCK','1') |

+--------------------------------------------------------------+

|                                                            0 |

+--------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> select memc_servers_behavior_set('MEMCACHED_BEHAVIOR_TCP_NODELAY','1'); 

+-----------------------------------------------------------------+

| memc_servers_behavior_set('MEMCACHED_BEHAVIOR_TCP_NODELAY','1') |

+-----------------------------------------------------------------+

|                                                               0 |

+-----------------------------------------------------------------+

1 row in set (0.00 sec)

8、测试

mysql> create table test(id int, value varchar(100));

Query OK, 0 rows affected (0.06 sec)

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| test           |

| urls           |

+----------------+

2 rows in set (0.00 sec)

mysql> create trigger mem_test_insert after insert on test for each row set @tmp=memc_set(NEW.id,NEW.value);

Query OK, 0 rows affected (0.04 sec)

mysql> create trigger mem_test_delete before delete on test for each row set @tmp=memc_delete(OLD.id);

Query OK, 0 rows affected (0.04 sec)

mysql> create trigger mem_test_update after update on test for each row set @tmp=memc_set(NEW.id,NEW.value);

Query OK, 0 rows affected (0.04 sec)

mysql> insert into test values (1, "aa"),(2,"bb");

Query OK, 2 rows affected (0.00 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> select memc_get("1");

+---------------+

| memc_get("1") |

+---------------+

| aa            |

+---------------+

1 row in set (0.00 sec)

mysql> select memc_get("2");

+---------------+

| memc_get("2") |

+---------------+

| bb            |

+---------------+

1 row in set (0.00 sec)

9、telnet测试
在win7上telnet memcached端口
输入get 1,得到aa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos memcached