memcached会话的方法

Ind*_*ial 7 php session memcached

我一开始正考虑使用memcached来存储会话而不是mySQL,这似乎是一个好主意.

当涉及到使用memcached服务器的故障转移部分时,如果memcached将脱机,我的会话将停止工作有点令人担忧.它肯定会影响我的用户.

我们已经使用了一些技术来减少故障转移,包括在停机时使用可用于补偿的服务器池,在服务器池中使用分片/一致性散列等等.我们还会做一些优雅的降级,告诉用户出现了问题,欢迎他们再次登录,如果由于memcached服务器故障转移而被踢出.

那么在memcached服务器上存储会话时,人们通常如何处理这些问题呢?

Joh*_*hat 9

首先,如果你只在memcache中放一些东西,你应该可以丢失它.对于其他一切,都有持久的存储空间.

其次,memcached不会经常失败.没有像磁盘盘片那样的移动部件.我失去会话的唯一一次是由于重新启动内核升级.但由于第一点,失去这些会议并不是什么大问题.

因此,要直接回答您的问题,如果数据可以丢失,只将其存储在内存缓存会话中即可.如果不能丢失,请将其存储在持久存储中,并将其缓存在内存缓存中以提高速度.


Jes*_*sse 3

您可以使用 db 和 memcached 创建故障安全方法。检查您的 memcached 对象是否在内存中,否则将会话存储在数据库中,然后创建 memcache 实例。只需确保注销/注销时,它会刷新/删除内存缓存...

所以先检查memcached,如果失败,检查db...:)