laravel用redis保存session遇到的坑,没报错,但redis-cli就是查不到

laravel用redis保存session遇到的坑,

 

配置redis存储session流程是这样的

在.evn文件中把session驱动和连接改为了redis的 如下:

SESSION_DRIVER=redis
SESSION_CONNECTION=session //这个是新加的

在session配置文件哪里,更改相应的链接配置(config/database.php) 如下:

    'redis' => [

        'client' => 'phpredis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],

        'cache' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_CACHE_DB', 1),
        ],

        'session' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_CACHE_DB', 2),
        ],

    ],

其中'session' 就是新增的链接,要和.env配置的同名

 

然后配置好测试,网页正常(可以读取写入),就是在redis-cli 控制台查不出来session

    public function index(Request $request)
    {
//        $redis = new \Redis();
//        $test = $redis->connect('127.0.0.1',6379);
//        $redis->set('cat', 111);
//        //获取一个字符串的值
//        echo $redis->get('cat'); // 111
        
        $redis = app('redis.connection');
        $redis->set('library', 'predis'); // 存储 key 为 library, 值为 predis 的记录;
        $request->session()->put('let','lw21321321t');
        $request->session()->put('lwt','lw888881t');
        $request->session()->put('ss','ss');
        
        return "aa11";
    }
    public function show(Request $request)
    {
        $sesson = $request->session();
        dd($sesson);
        return "show";

    }

结果:

 

但是 redis-cli控制台一直没有结果

网上查了一阵,发现 redis有16个数据库?, 我的session配置存在了数据库2里面,所以要在数据库2里面查看数据,结果 果然如此, [尴尬流汗]

select 2 //切换到 redis的数据库2

 

 

 参考 :https://www.cnblogs.com/oxspirt/p/6529791.html

 

### Linux环境下Redis命令行工具 `redis-cli` 的用法 #### 基本连接方式 在Linux环境中,可以通过指定IP地址和端口号的方式连接到Redis服务器。例如,可以使用以下命令获取Redis服务的相关信息并过滤进程ID: ```bash redis-cli -h ip -p port info server | grep process_id ``` 此方法适用于快速检查Redis实例的状态[^1]。 #### 版本适配问题 如果使用的`redis-cli`客户端版本与运行中的`redis-server`版本不匹配,则可能导致某些功能无法正常工作。例如,在尝试启用集群模式时传递`-c`参数可能会失效。因此建议始终确保两者版本一致以避免潜在兼容性问题[^2]。 #### 提高效率技巧 由于日常维护过程中可能需要频繁执行相同类型的命令,而标准的CLI界面缺乏直观性和便捷性,这成为了一些特定业务场景下的挑战[^3]。为了提升工作效率,用户可以根据实际需求编写脚本来自动化这些重复性的任务或者利用其他高级特性如Lua脚本来扩展功能集。 #### 数据显示乱码解决办法 当从Linux终端读取存储于Redis内的字符串型数据时遇到字符编码异常情况——即所谓的“乱码”,即使确认原始输入采用了UTF-8格式仍会出现该现象。此时可通过调整环境变量来修正这一状况;具体做法是在调用之前先设定合适的locale设置,比如: ```bash export LC_ALL=en_US.UTF-8 ``` 之后再重新启动`redis-cli`会话即可恢复正常显示效果[^4]。 #### Redis键操作基础 对于初学者而言掌握基本的键管理指令是非常重要的一步。下面列举了几种常见的用于操控key-value结构的核心语法及其作用简介: | Command | Description | |---------------|-----------------------------------------------------------------------------| | DEL key | 删除给定的一个或多个Key | | EXISTS key | 如果存在则返回true, 否则false | | EXPIRE key seconds | 设置过期时间 | | KEYS pattern | 找出所有符合给定pattern的keys | 以上表格总结了部分最常被提及的功能点以及它们各自的用途描述[^5]。 ```bash # Example Usage of Key Commands DEL mykey EXISTS anotherkey EXPIRE sessionid 600 KEYS "*user*" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值