【第22期】观点:IT 行业加班,到底有没有价值?

利用redis存储session,解决登录同步问题

原创 2015年11月20日 14:51:52

一、php session存储方式

在php中,存储session可以使用files user memcached redis,对于小型单一网站可以直接使用files的方式存储session。使用缓存数据库存储session的好处是较之文件存储方式,在大用户量的情况下速度更快、性能更优。而且如果做分布式系统的话,使用数据库存储是很好的方式。
所以,如果使用数据库存储session,memecached和redis到底那种更好。

二、redis和memcached的比较

1、redis不仅仅支持简单的k/v类型的数据,同时还提供list、set、zset、hash等数据结构的存储;
2、redis支持数据的备份,即master-slave模式的数据备份;
3、redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用;
redis和memcached都是高性能的分布式缓存服务器,通过上述比较,考虑到如果重启服务器,memcached中的数据都会丢失,会影响用户的体验,所以使用redis存储session是比较好的方案。

三、redis存储session的php实现

在我的上篇博客中,已经介绍了怎么安装redis服务器及phpredis扩展,具体请参考:http://blog.csdn.net/turtleo/article/details/49934497

<?php

ini_set('session.gc_maxlifetime', 3600);
ini_set('session.save_handler', "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
session_start();
$_SESSION['uid'] = "2";
$_SESSION['username'] = "turtle";

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$user = $redis->get('PHPREDIS_SESSION:'.session_id()).'</br>';
echo $user;
?>

如果在配置文件中/etc/redis/6379.conf中开启了requirepass,这使用如下代码

ini_set('session.gc_maxlifetime', 3600);
ini_set('session.save_handler', "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379?auth=password");
session_start();
$_SESSION['uid'] = "2";
$_SESSION['username'] = "turtle";

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('turtletl.com');
$user =  $redis->get('PHPREDIS_SESSION:'.session_id()).'</br>';
echo $user;
?>

可以进行如下配置开启requirepass:

vim /etc/redis/6379.conf

具体配置文件依情况而定

requirepass 密码

重启redis服务器。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

redis实战之使用redis存储session数据

在之前的一篇服务器由单机转换为负载均衡时需要做哪些处理博文中提到,在多台服务器的情况下,建议使用redis存储session数据,具体如何实现呢? 其实实现起来非常简单,以php为例: 只...

mysql颠覆实战课程 - redis存储用户表信息

前面我们已经学习了redis中的String数据类型: http://blog.csdn.net/github_26672553/article/details/69680548现在我们将要学到re...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

Redis应用——使用Redis存储Session

PHP默认使用文件存储Session,但如果并发量很大,效率非常低。而Redis对高并发的支持非常好,所以,可以使用Redis替代文件存储Session。 在讲解实例之前,先了解PHP的sessi...

nginx负载均衡简单配置

nginx负载均衡简单配置 准备三台虚拟机来做这个实验: 192.168.232.132        web服务器 192.168.232.133        web服务器 192.168.2...

利用redis同步登陆实现session共享

由于一直在弄oa系统,涉及与公司的其它系统整合;     今天要弄的是用redis做同步登陆,即在oa里登陆成功后即可在其它系统实现一键登陆。    oa是用shiro登陆的,shiro里...

用Redis实现Session功能

0.什么是Redis Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API ---维基百科 1...

用Redis实现Session功能,实现单点登录

0.什么是Redis Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API ---维基百科 1.与其他...

利用redis来实现身份验证的一种方法,类似session机制

HTTP协议是一种没有状态的协议,也就是说它不记录请求消息是谁发送的。这里我们把发送请求的称为客户端,接收请求并根据请求返回数据的称为服务端。 HTTP协议传输就导致了一个问题:一个服务端,只要有请...

redis实现网站最新登录用户功能

在网站开发过程中经常会遇到关于《最近登录用户TOP10》或是《最高得票TOP10》诸如此类的问题 ,传统思路主要是通过MySQL的order by 和limit 10 来做TOP10的获取。这里讲解一...

session入redis 操作

Session 信息入redis Session简介 session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)