原生php访问redis的使用基础

一、基本步骤
      $redis = new Redis();   // 获取redis实例对象。需要安装并打开PHP的redis扩展;有些环境下需要 new \Redis(); 才行
      $redis->connect('127.0.0.1', 6379);   // 链接redis数据库。 127.0.0.1=数据库地址;6379=默认端口
      $redis->auth('mypassword');  // 验证密码。 一般redis在本地服务器,无需设置密码,此步骤可以省略
      $redis->select(1);  // 选择第几号库。redis默认10个库,编号0到9。此步骤可省略,默认选择第0号库
      $redis->set("redis_key", "redis_value");  // 设置(插入)一个类型为字符串的值。redis_key=redis键;redis_value=键对应的值
      $data = $redis->get("redis_key");  // 读取一个字符串类型的值。 此处返回:redis_value
      $redis->close();   // 关闭redis连接
 
      说明:redis的数据存储是键值对的形式存储,所以每个数据都有一个(组)唯一键名。以上是一个简单的基本操作。后续其他数据
               类型和操作,只需要根据不同的方法更改 $redis->get() 和 $redis->get() 这个步骤即可,如$redis->lpush() 等等。 


二、各个方法使用
      方法参考:http://t.zoukankan.com/jkko123-p-10471319.html

三、示例
      场景:有多组用户信息需要存储到redis提供成并发程序使用,并且在今天18点之前有效。
               其中一组原始数据如: $data = ['userid'=>2324, 'username'=>'tom', 'age'=>23];

      实例代码:
              /// 要存储的数据
              $data = ['userid'=>2324, 'username'=>'tom', 'age'=>23]; // 其中的一组数据
              $end_time = strtotime(date('Y-m-d 18:00:00'));  // 获取今天18点之前的时间戳
              $exp_time = $end_time - time(); // 计算从现在到今天18点有多少秒【作为redis过期时间】
              $key = '2324';    // key与userid的值保持一致方便读取。实际业务中可以拿多个数据组合唯一字符串起来作为键

              /// 数据存储部分
              $redis = new \Redis();  // 获取用户实例
              $redis->connect('127.0.0.1', 6379);  // 链接redis数据库
              $rs = $redis->set($key, json_encode($data, JSON_UNESCAPED_UNICODE));  // 把数据格式化为json字符串类存储到redis中
              $re = $redis->expire($key, $exp_time); // 设置 $exp_time 秒后过期
              var_dump($rs, $re);

              /// 数据读取部分
              //$redis = new \Redis();  // 获取用户实例
              //$redis->connect('127.0.0.1', 6379);  // 链接redis数据库
              $rg = $redis->get('2324');  // $key的值与set时的key值一致。当过期后或使用del方法删除后,返回false
              var_dump($rg);

              /// 数据删除
              $rd = $redis->del('2324');    // 通过键删除刚刚存储的值【php7.4不支持该方法,改为了delete方法】
              var_dump($rd);

四、写在最后
            1、redis的所有操作都具有原子性,数据类型丰富,而且是存在内存里的非关系型数据库,所以效率是非常快的。 所以一般在并发、
                 数据缓存优化、秒杀库存、频繁访问数据库的等业务场景下使用。
            2、脚踏实地实机操作过以上代码后,只需要熟读 上述链接中的各种方法,小白也能快速掌握PHP操作redis的使用
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

微信客服
微信客服

0 条回复A文章作者M管理员
    暂无讨论,说说你的看法吧