在实际项目中使用memcache需要注意的事项

1. memcache适合于存储哪些数据

  • 安全性不是很高的数据,丢失无所谓的数据,因为memcache服务器,一旦重启或关机,则会丢失所有的数据。
  • 查询比较频繁的数据,比如热点新闻,等等。
  • 更新比较频繁的数据,比如用户的在线状态。
  • 一个键值,数据量不要很大,要小于1MB的数据。

2. memcache的安全性

memcache没有任何的安全认证(比如用户名与密码),因为是主要做缓存使用,不是做数据存储使用的。
-l 监听的ip地址,启动后,只能监听该网卡(ip地址)进来的请求。
可以把memcache服务器放入到内网中,与互联网隔离,让其他外网用户无法访问。

3. 数据过期的问题

在memcache里面数据过期后,不会自动删除,当get时,发现过期后,才删除该数据。memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。

4. 数据存储空间满了,还能否存储数据呢?

memcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当memcached的内存空间不足时(无法从slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想

5. 如果需要设置许多缓存项时,失效时间最好不要设置为相同的。

主要目的:防止缓存雪崩现象。

例如有很多缓存项,设置了相同的失效时间,如果在某个时间点,同时失效,而且正好赶上是搞并发的时间,这是从memcache里面取不到数据,就涌向了mysql服务器

posted @ 2016-09-04 05:31  chenjiacheng  阅读(525)  评论(0编辑  收藏  举报