缓存学习笔记(一)—— memcached的简介

最近在实习培训的时候,讲到了缓存这一块,发现自己对缓存的体系了解的还不够透彻,后面打算利用这段时间整理一下常见的缓存机制以及相应的软件。
说到缓存,就不得不说memcached,天生就是来解决缓存问题的。

一、Memcached是什么

memcached是一款高性能的分布式基于内存缓存的服务器。通常的作用就是,通过缓存后端数据库的数据,来降低后端数据库的压力。提高web应用的响应速度和扩展性。
在这里插入图片描述

二、memcached的特征

作为高性能的缓存服务器,具有以下特点

  • 协议简单
  • 基于libevent的事件处理
  • 基于内存缓存
  • 分布式之间不互相通信
1、协议简单

memcached服务器和客户端之间协议简单,并不依赖与json或者xml等其他的复杂协议。而是基于简单的文本行协议。通过telnet就能在远程的memcached服务器上存取数据。

2. 基于libevent的事件处理

libevent是一个库,它将linux中事件处理功能的函数封装成统一的接口
这块不太了解,后期熟悉了进行补充

3. 基于内存的缓存

为了提高性能,memcached使用内存作为数据的存储方式,故当缓存服务器断电之后,数据也会消失,其不像redis一样,并不支持数据的持久化。当内存容量达到指定值后,会采用LRU算法剔除掉之前缓存的数据。

4. 互不通信的分布式

memcached尽管是分布式服务器,当各个服务器之间并不互相通信,其分布式是通过客户端来实现的。
在这里插入图片描述

三、Memcached 对数据的操作

memcached支持对键值对的存储,同时也可以设置过期时间。不设置过期时间的话,将会按照LRU的剔除策略在内存到达容量之后进行数据的剔除。

1、保存数据

set(“键”,“值”,“过期时间”)
replace(“键”,“值”,“过期时间”)
add(“键”,“值”,“过期时间”)
这三个方法有点区别,在这里就不做区分了。

2. 获取数据

get(“键”) 一次取出一个键值
get(“键一”,“键二”,“键三”)一次取出多个值

3. 删除数据

delete(“键”, “阻塞时间”)
这里的第二个参数指的是在删除的时候阻塞指定时间,防止使用同样的键来保存新数据。

4. 增一减一操作

可以将mencached的特定值值作为计数器使用。增一减一为原子操作,但未设置初值时,memcached不会赋初始值。

发布了66 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/103627571