Session存储到Redis

Session存储到Redis

当然要写先安装php的扩展,可参考这篇文章: Redis及PHP扩展安装

修改php.ini的设置

session.save_handler = redis
session.save_path = “tcp://127.0.0.1:6379″

修改后重启php-fpm或nginx,phpinfo()

session redis

session redis
如果不想修改php.ini可这样

ini_set(“session.save_handler”,”redis”);
ini_set(“session.save_path”,”tcp://127.0.0.1:6379″);

如果配置文件/etc/redis.conf里设置了连接密码requirepass保存session的时候会报错,save_path这样写 tcp://127.0.0.1:6379?auth=authpwd 即可。

有网友提到相对于文件存储的session,redis或者memcache存储session值会有并发一致性的问题,这块并没有细测过。

<?php
//如果未修改php.ini下面两行注释去掉
//ini_set('session.save_handler', 'redis');
//ini_set('session.save_path', 'tcp://127.0.0.1:6379');
session_start();
$_SESSION['sessionid'] = 'this is session content!';
echo $_SESSION['sessionid'];
echo '<br/>';

$redis = new redis();
$redis->connect('127.0.0.1', 6379);
//redis用session_id作为key并且是以string的形式存储
echo $redis->get('PHPREDIS_SESSION:' . session_id());

?>
要将 Flask 中的 Session 存储Redis 中,可以使用第三方库 Flask-SessionRedis-Py。下面是一个示例: ```python from flask import Flask, session from redis import Redis from flask_session import Session import os app = Flask(__name__) app.config['SESSION_TYPE'] = 'redis' app.config['SESSION_REDIS'] = Redis(host='localhost', port=6379, password='password') app.config['SESSION_COOKIE_NAME'] = 'flask_session' app.config['SESSION_PERMANENT'] = False app.config['SESSION_USE_SIGNER'] = True app.config['SESSION_KEY_PREFIX'] = 'session:' app.config['SECRET_KEY'] = os.urandom(24) Session(app) @app.route('/') def index(): session['username'] = 'Alice' return 'Hello, World!' @app.route('/user') def user(): username = session.get('username') return f'Hello, {username}!' if __name__ == '__main__': app.run() ``` 在上面的示例中,我们首先配置了 Flask-Session,使用了 Redis 作为 Session 存储后端。在配置中,我们指定了 Redis 的主机名、端口号、密码,以及 Session 的一些其他选项,比如 Cookie 名称、前缀等。接着,我们创建了一个路由函数 `/`,在其中存储了一个名为 `username` 的 Session 数据。然后,我们创建了另一个路由函数 `/user`,在其中检索了名为 `username` 的 Session 数据,并返回了一个带有欢迎消息的字符串。 需要注意的是,为了使用 Redis 作为 Session 存储后端,我们需要在系统中安装 Redis,并安装 Redis-Py 库。此外,我们还需要在配置中指定 Redis 的主机名、端口号、密码等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值