• Laravel使用Redis的哈希存储用户信息


    描述:

      用户第一次登录,写入缓存的哈希数据,下次直接通过缓存的哈希数据读取。

    介绍:

      Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

      Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

    关键词:

      hexists :检查键名是否存在 

      hget :获取键名内容

      hset :写入内容

    代码:hset key(键名) field(域名) value(内容)

    public function setHashUser(Request $request)
        {
            // 使用格式
            // HSET key field value
            // 将哈希表 key 中的字段 field 的值设为 value
            
            $user_id = $request->input('user_id');
            $user_name = $request->input('user_name');
            //定义键名前缀
            $cache_name = "user_info:USER_INFO_INFO";
            //如果存在取缓存
            if(Redis::hexists($cache_name, $user_id)){//检查是否存在
                $user_info = Redis::hget($cache_name, $user_id);//存在获取
                if(!empty($user_info)){
                    $info = json_decode($user_info, true);
                }
                echo '取的是缓存';
            }else{
                //不存在,取数据库,并写入缓存
                $info = [
                    'user_id' => $user_id,
                    'user_name' => $user_name,
                ];
                //不存在即写入,以$user_id作为哈希的域名
                $flag = Redis::hset($cache_name, $user_id, json_encode($info));//不存在 写入
                if(!$flag){
                    //不成功,再写一次
                    Redis::hset($cache_name, $user_id, json_encode($info));
                }
                echo '取得时数据库';
            }
            dd($info);
        }

    -----END

    影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....
  • 相关阅读:
    Storm的并行度、Grouping策略以及消息可靠处理机制简介
    storm入门原理介绍
    Kafka学习笔记-Java简单操作
    批量复制word文档,并生成以日期为后缀名的批量文档攻略,批量生成word文档
    数组
    分支结构,循环结构学习整理
    java中的运算符
    Java中的变量和基本数据类型知识
    Java开发环境描述
    使用Map,统计字符串中每个字符出现的次数
  • 原文地址:https://www.cnblogs.com/camg/p/15798132.html
Copyright © 2020-2023  润新知