Memcached简单介绍

来源:互联网 发布:非农历史数据统计 编辑:程序博客网 时间:2024/06/11 20:19

介绍

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。


安装:

yum –y install memcached


工作机制

特点有以下几个:

1.暂无认证以及安全管制,也没有冗余备份机制,考虑到时内存数据库,也就无所谓了。

2.Value大小 1.4.2以后可以到128M。

3.节点之间不互相通信。

4.c/s通信使用基于文本行的格式。

5.使用LRU算法管理内存。

6.客户端可以实现一致性哈希算法来决定数据在服务器节点的分布。

7.Lazy Expiration,不主动检查数据的过期。

原理图






首先求出memcached服务器(节点)的哈希值, 并将其配置到0~2^32的圆(continuum)上。add数据时,用同样的方法求出存储数据的键的哈希值,并映射到圆上。从数据映射到的位置开始顺时 针查找,将数据保存到找到的第一个服务器上。 如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。


Memcached的配置

打开 vim /etc/sysconfig/memcached
默认情况下
PORT="11211"
USER="memcached“
#最大连接数1024
MAXCONN="1024“
#占用最大内存64M
CACHESIZE="64"
#监听的IP  默认情况是所有
OPTIONS=""


启动Memcached

一:后台启动

1:启动
service memcached start
2:设置开机自启动
chkconfig memcached on

二:前台启动
memcached -d -u root -m 1024 -p 11211  -vvv


Memcached命令列表


存储命令set/add/replace/append/prepend/cas
读取命令get/gets
删除命令delete
计数命令incr/decr
统计命令stats/settings/items/sizes/slabs
工具memcached-tool



使用Memcached时出现在的问题

1:数据不正确

解决方案:数据更新同步缓存服务器
2:key值太长

解决方案:对key加密,加密后长度可控,建立一个加密前的key与加密后的key的一个映射表
3:内存溢出

解决方法:加大内存,监听key的使用,长时间不使用的key要释放,不要让他们占用内存空间

4:时间设置问题




0 0
原创粉丝点击