memcached

memcached是高性能的分布式内存缓存数据库。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。



memcached的特点

       一、memcached的服务器客户端通信使用简单的基于文本行的协议。因此,通过telnet 也能在memcached上保存数据、取得数据。

  $ telnet localhost 11211
二、基于libevent的事件处理
三、内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
四、 各个memcached不会互相通信以共享信息。分布式算法完全由客户端实现。
 

memcached的使用

默认情况下memcached安装到/usr/local/bin下。

启动命令

-p 使用的TCP端口。默认为11211
-m 最大内存大小。默认为64M

保存数据命令与方法

向memcached保存数据时可以指定期限(秒)。不指定期限时,memcached按照LRU算法保存数据。

选项 说明
add 仅当存储空间中不存在键相同的数据时才保存
replace 仅当存储空间中存在键相同的数据时才保存
set 与add和replace不同,无论何时都保存

数据操作

command <key> <flags> <expiration time> <bytes>
<value>
参数 用法
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点
value 存储的值(始终位于第二行)

1.获取数据可以使用get和get_multi方法。

2.删除数据使用delete方法。


数值加减

incr  <key> <num>

decr <key> <num>


增添内容

在数据末尾添加内容

append  <key> <flags> <expiration time> <bytes>

<value>


在数据开头添加内容

prepend


缓存管理命令

stats

flush_all  清理缓存中的所有名称/值对。


缓存工作性能



memcached 不能进行模糊查询,只能进行完全匹配查询。


多台memcached并行工作

memcached通过一致性散列算法来分散数据,数据会根据服务器的台数进行自动分散。

memcached与MySQL协同工作

1.读取
从 Web 层获取请求(需要执行一次数据库查询)并检查之前在缓存中存储的查询结果。如果我找到所需的值,则返回它。如果未找到,则执行查询并将结果存储在缓存中,然后再将结果返回给 Web 层。

2.写入
将数据写入到数据库中时,首先需要执行数据库写入操作,然后将之前缓存的任何受此写入操作影响的结果设定为无效。此过程有助于防止缓存和数据库之间出现数据不一致性。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值