位置:编程技术网 > 云计算 > 正文 >

mysql 8.0 memcached api 新特性

2020年07月11日 15:09来源:未知手机版

汉中旅游景点大全,e318,开创国际

mysql 8.0 memcached api 新特性-爱可生 2020-07-08 10:43:26 爱可生云数据库技术 >作者:杨涛涛

资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。

本文来源:原创投稿

本文关键字:memcached

一款优秀的缓存系统

memcache 本身是一款分布式的高速缓存系统,以 key-value 的形式常驻内存,一般用来做网站或者数据库的缓存使用。

特别是对以下场景非常适合用 memcache 来做缓存:

1. 频繁访问的数据

2. 安全性要求比较低的数据

3. 更新比较频繁的小表(用户状态表、物品库存等)

MySQL memcached api

MySQL 5.6 —— 开始支持

MySQL 5.6 把 memcache 功能以插件形式集成到 MySQL 数据库中,称为 memcached api。

这样一来,memcache 的数据以 InnoDB 关系表的形式同步于磁盘,解决了 memcache 的几个问题:

1. 解决了 memcache 的数据持久化的问题;

2. 可以很方便的以 SQL 语句的形式直接访问 memcache 的数据;

3. 不需要单独安装 memcache,安装 MySQL 即可使用。

MySQL 5.7 —— 深入优化

MySQL 5.7 对 memcached api 做了深入优化,官方数据显示使用 memcached api,在只读的场景中,QPS 提升到 100W。

MySQL 8.0 —— 新增特性

MySQL 8.0 发布后,又在功能上给 memcached api 增加了两个新特性。

1. 批量获取 KEY

相比原来一次只能读取一个 Key 来讲,减少了客户端与 MySQL 服务端的数据交互次数。

2. 可以对 KEY 进行 RANGE 操作

可以直接类似于 select * from t1 where id between 10 and 20 这样的范围检索语句。

演示

下面我们来演示下这两个新的特性,先把 memcached api 插件以及需要的示例表数据准备好。

1. 导入元数据

从 MySQL 相关目录导入 memcached api 元数据(包含配置,容器等)。

(localhost:ytt)

\. /usr/share/mysql-8.0/innodb_memcached_config.sqlQuery OK, 1 row affected (0.05 sec)

2. 安装插件

第一次需要手动安装 memcached 插件。

(localhost:test)

INSTALL PLUGIN daemon_memcached soname "libmemcached.so";Query OK, 0 rows affected (0.08 sec)

再次确认 memcached 插件安装成功。

(localhost:information_schema)

select * from information_schema.plugins where plugin_name = 'daemon_memcached'\G*************************** 1. row *************************** PLUGIN_NAME: daemon_memcached PLUGIN_VERSION: 1.0 PLUGIN_STATUS: ACTIVE PLUGIN_TYPE: DAEMON PLUGIN_TYPE_VERSION: 80020.0 PLUGIN_LIBRARY: libmemcached.soPLUGIN_LIBRARY_VERSION: 1.10 PLUGIN_AUTHOR: Oracle Corporation PLUGIN_DESCRIPTION: Memcached Daemon PLUGIN_LICENSE: GPL LOAD_OPTION: ON1 row in set (0.00 sec)

3. 准备数据

建立一张示例表 t1。

注意:表主键对应 memcached api 的 Key,除主键外的其他字段只能整型或者字符类型,剩下的 flags,cas,expiry 是规定死的字段。

(localhost:ytt)

create table t1 ( id serial primary key, r1 int, r2 int, r3 varchar(20), flags int, cas bigint unsigned, expiry int);Query OK, 0 rows affected (0.05 sec)

目前插入的一些示例数据。

(localhost:ytt)

本文地址:http://www.reviewcode.cn/yunjisuan/156274.html 转载请注明出处!

今日热点资讯