关于memcached:使用-Memcached-实现-Session-共享

40次阅读

共计 962 个字符,预计需要花费 3 分钟才能阅读完成。

应用 Memcached 实现 Session 共享

利用场景

当有很多用户的时候,这些用户的登录地位在各个不同的服务器上,因为 session 是生成在服务器上的,当用户互访的时候,有的时候发现自己有权限,有时候发现自己没有权限。因为缓存是集中式的,所有的缓存都在一起,那么就能够把 session 放到 memcached 缓存中。所有服务器都能够在专用的服务器下面来取 session,这样无论用户在哪一台服务器下面登录,都有正确的 session。这样的话,有两个长处,第一,解决了 session 共享的问题。第二,当用户量很大的时候,session 是寄存在服务器下面的,因而就会减少了磁盘的 IO,然而如果放在缓存中,性质则齐全不一样。

实现形式

  • 设置 php.ini 配置文件

vim /etc/php/7.2/fpm/php.ini

  1. 将 seesion 存储形式改为 memcached

默认 php 是以文件的模式寄存 session 的

1337 session.save_handler = files

因而须要批改成 memcached

session.save_handler = "memcached"
  1. 批改 session 寄存地位

默认 php 正文掉了

1366 ;session.save_path = "/var/lib/php/sessions"

批改为

留神:192.168.174.128 是我虚拟机的 ip 地址,这里须要批改成你 memcached 服务器的 ip 地址

# 对于 php 5.6 及以下,须要写成如下
session.save_path = "tcp://192.168.174.128:11211"

# 对于 php 7 以上能够间接写成
session.save_path = "192.168.174.128:11211"
  • 如果只想单个 php 文件,取 session 的时候间接取缓存中取的话,能够如下设置

vim test.php

<?php
ini_set("session.save_hander", "memcached");
ini_set("session.save_path", "192.168.174.128:11211");
  • 另外还能够采纳 apache 或者 nginx 的形式设置

将 session 放到 memcached 中的毛病:

集群谬误会导致用户无奈登陆、memcached 的回收机制可能会导致用户掉线

原文地址

正文完
 0