转到正文

浪淘沙

静观己心,厚积薄发

存档

分类: 数据库

hset返回结果:

  • 1 if field is a new field in the hash and value was set.
  • 0 if field already exists in the hash and the value was updated.

一般情况下返回值的意思为:1 成功,0:失败。但是 这hset比较特殊。0表示原来已经存在的值被更新成功。至于操作失败的情况,redis被没有给一个结果。所以,妄想通过hset的返回值0,1来判断操作是否成功,是行不通的。

PS:详情请移步:http://redis.io/commands/hset 继续阅读

session共享一般使用的方法有两个:

1、NFS或者Samba共享的方法,让各个服务器上存放session文件的磁盘共享,这种方法简单可行。

2、集中存储到数据库中,这是比较多的实现方法,通过php提供的session_set_save_handler()函数来重定义session函数,推荐使用这种方法。

下面再对session共享问题进行稍微详细的阐述。

session共享用简单的一句话就是:“多服务器共享客户端的 SESSION ID,同时还必须共享服务器端的 SESSION 数据。

第一个目标的实现其实很简单,只需要对 COOKIE 的域(domain)进行特殊地设置即可,默认情况下,

COOKIE 的域是当前服务器的域名/IP 地址,而域不同的话,各个服务器所设置的 COOKIE 是不能相互访问

的,如 www.aaa.com 的服务器是不能读写 www.bbb.com 服务器设置的 COOKIE 的。

这里我们所说的同一网站的服务器有其特殊性,那就是他们同属于同一个一级域,如:aaa.infor96.com

和 www.infor96.com 都属于域 .infor96.com,那么我们就可以设置 COOKIE 的域为 .infor96.com,这样

aaa.infor96.com、www.infor96.com 等等都可以访问此 COOKIE。PHP 代码中的设置方法如下:

 <?php ini_set('session.cookie_domain', '.infor96.com'); ?> 

这样各个服务器共享同一客户端 SESSION ID 的目的就达到了。
继续阅读