多语言展示
当前在线:1882今日阅读:175今日分享:29

memcache的安全如何保证和memcache雪崩

memcache的安全如何保证
工具/原料
1

memcache安全如何保证

2

memcache雪崩

memcache的安全如何保证
1

1. memcache在使用过程中,是没有用户名的验证操作的。所以一般在使用memcache的时候都是在内网使用,不要使用公网IP。2.如果真的要在公网IP使用,可以写一个专门的防火墙验证规则,只允许规定的IP去操作memcache服务器。

2

3. memcache缓存时间的设置问题# add  KEY  是否压缩(0|1) 缓存时间 字符长度缓存时间: 当设置为0 的时候,代表不限定缓存时间(但是在memcache内部也默认有一个最大的缓存时间 是 30天,当30天之后,该数据还是会被memcache清除)缓存时间可以有两种设置方式:1. 使用 秒数(但是该秒数 不能大于 30 天) 864002. 使用 时间戳(time() + 60 * 86400) 相当于设置 缓存时间为 60天 a. 如何区分时间戳和秒数的问题?memcache内部这样区分,当设置缓存时间如果小于 30*86400 代表的就是缓存时间为秒数如果设置的缓存时间大于 86400* 30,但是不能小于当前时间戳,就代表的是使用的时间戳 b. 例如:设置一个name 为 asion的值,缓存 10天1. set name 0 10*86400 5# asion2. set name 0 time()*10*86400 5# asion c. 例如:设置一个name为aison的值,缓存时间 40天1. set name 0 40*86400 + time() 5# asion

memcache雪崩

当使用memcache缓存系统全部崩溃的时候,这个时候所有的压力全部加在了MySQL服务器上,MySQL服务器无法支撑其访问,会立马的崩溃,这种现象叫做memcache的雪崩现象。为了防止此类问题的发送,需要对memcache的缓存系统做优化处理。由于使用取模的算法来实现缓存系统的话,当某一台memcache服务器宕机之后,整个缓存系统memcache服务器的个数较少,使用取模的余数就会全部的变化,这个时候缓存数据基本没办法在使用。这个时候引入了一个更好的算法,叫做一致性hash算法来实现缓存系统。一致性hash算法的思想1. 假想存在一个圆环,分布着 0 -2^32次方这么多个数2. 然后对memcache服务器IP地址使用crc32函数做运算,形成一个整数,然后把它映射这个圆环上3. 对需要保存到memcache服务器上的值的key也做crc32运算,把计算的数沿着圆环做顺时针旋转,找到一个不必自己小的节点来保存对应的数据4. 当某一台memcache服务器宕机之后,此时受到的影响只有宕机的那台服务器上的数据不能在继续使用。

推荐信息