资讯专栏INFORMATION COLUMN

memcache与redis杂谈

roundstones / 1571人阅读

摘要:项目下的缓存控制客户端向服务端请求页面的过程中,服务端是可控的。可控的才可优化,优化的重点,即是缓存优化。如此就能提高数据响应的速度,也保护了数据源。虽开启扩展可管理内存,但所能管理的内存大小是有限的。见下图的英文注释注意事项

php项目下的缓存控制
客户端向服务端请求php页面的过程中,服务端是可控的。
可控的才可优化,优化的重点,即是缓存优化。

试想?数据存储在DB中,访问DB就要读取硬盘数据,但如果需要数据的速度>>硬盘最大的读写速度,
就会产生IO瓶颈。

那么,使用内存缓存数据结果集,让用户首先读取缓存,未果则从DB中读取。
如此,就能提高数据响应的速度,也保护了数据源。

php虽开启shmop扩展可管理内存,但所能管理的内存大小是有限的。

才有大为流行的NOSQL:
memcache  高性能的分布式内存缓存服务器   
(分布式配置:1.有多个memcache服务端;2.开启php相应扩展,通过addServer()即可实现。底层通过对key的hash取余来标识服务器,因此代码实现上,不要改变存取前的服务器的顺序,否则可能出现获取不到值的情况)
redis     高性能的内存缓存服务器          
(主从配置:master主服务器执行修改操作,多个slave(只读)连接master,在首次全量复制后,增量更新数据到自身。如果slave断了,重新连接master时,会自动全量复制)
MEMCACHE

以key-value的方式存储

key可达250B,value可达1M

value是以字符串的形式保存的:

php标量数据类型,保存时会隐式转换为字符串;
php其他数据类型, 保存时自动序列化,取出时自动反序列化. //该过程是php的memcache扩展开启后,底层实现的

item过期时间是时间戳时,无限制;以s为单位时,不能超过30天的秒数

不能持久化,要的就是速度

注意事项

memcacheredis,最大区别在于持久化(即数据能否保存在硬盘上).
redis因其多样的数据结构,而满足更多的业务需求,但memcache的读取速度更快些.

REDIS

支持丰富的数据结构(在此先不展开该方面的讨论)

常用项:string,hash,list,set,sortedset                //redis本身就实现了双向列表,list还可模拟出队列,堆栈的数据结构

value值可达512M

可持久化:

快照持久化(SNAPSHOTTING)
一定时间内一定数量的key值的改变,就会全量复制redis内存管理的数据到硬盘.

精细持久化(AOF)
用来保存每次执行的命令.开启后,每秒保存一次。见下图的英文注释

注意事项

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30617.html

相关文章

  • memcacheredis杂谈

    摘要:项目下的缓存控制客户端向服务端请求页面的过程中,服务端是可控的。可控的才可优化,优化的重点,即是缓存优化。如此就能提高数据响应的速度,也保护了数据源。虽开启扩展可管理内存,但所能管理的内存大小是有限的。见下图的英文注释注意事项 php项目下的缓存控制 客户端向服务端请求php页面的过程中,服务端是可控的。 可控的才可优化,优化的重点,即是缓存优化。 试想?数据存储在DB中,访问DB就...

    Mr_houzi 评论0 收藏0
  • 【技术杂谈】springcloud微服务之数据操作独立模块化

    摘要:而在这个微服务下,同样需要进行数据操作,我不可能还要在下再一次进行集成,这样大大的增加了代码量。其次,是将有关数据操作的都单独部署成一个模块,比如我集成的模块,集成的模块,使用作为内存缓存模块。 前言 相对于 spring 对 mybatis 以及 redis 等的整合所需要的各种配置文件,在 springboot 下,已经大大的简化了,你可能只是需要增加个依赖,加个注解,然后在配置文...

    tianyu 评论0 收藏0
  • 【技术杂谈】springcloud微服务之数据操作独立模块化

    摘要:而在这个微服务下,同样需要进行数据操作,我不可能还要在下再一次进行集成,这样大大的增加了代码量。其次,是将有关数据操作的都单独部署成一个模块,比如我集成的模块,集成的模块,使用作为内存缓存模块。 前言 相对于 spring 对 mybatis 以及 redis 等的整合所需要的各种配置文件,在 springboot 下,已经大大的简化了,你可能只是需要增加个依赖,加个注解,然后在配置文...

    zorro 评论0 收藏0
  • 分布式缓存MemcacheRedis

    摘要:分布式各个服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于客户端。缓存策略的缓存策略是最近最少使用到期失效策略。在内存储数据项时,可以指定它在缓存的失效时间,默认为永久。 一、MemcacheMemcache是一个高性能,分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件...

    MobService 评论0 收藏0
  • 分布式缓存MemcacheRedis

    摘要:分布式各个服务器之间互不通信,各自独立存取数据,不共享任何信息。服务器并不具有分布式功能,分布式部署取决于客户端。缓存策略的缓存策略是最近最少使用到期失效策略。在内存储数据项时,可以指定它在缓存的失效时间,默认为永久。 一、MemcacheMemcache是一个高性能,分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件...

    Michael_Ding 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<