• PHP使用Redis


    一、安装php类库

    直接下载,github的仓库

    https://github.com/nrk/predis
    

    或者 composer安装
    composer require predis/predis

    二、测试是否可用

    linux Redis服务

    是否启动
    ps aux | grep redis
    启动
    ./bin/redis-server ./redis.conf
    关闭
    ./bin/redis-cli shutdown
    

    Redis的默认配置

    'host' => '127.0.0.1',
    'port' => 6379
    

    php使用简单流程

    require "./predis-1.1/autoload.php";
    $redis = new PredisClient([
        'scheme' => 'tcp',
        'host' => '127.0.0.1',
        'port' => 6379,
    ]);
    
    //设置值和获取值
    try
    {
        $redis->set('update_ucenter_order_time', time());
        $lastUpdatTime = $redis->get('update_ucenter_order_time');
    } 
    catch (Exception $e)
    {
        echo $e->getMessage();
    }
    print($lastUpdatTime);
    

    三、常用操作

    Redis支持类型

    String: 字符串
    Hash: 散列
    List: 列表
    Set: 集合
    Sorted Set: 有序集合
    

    3.1 string操作

    linux环境下

    whereis redis-cli
    
    /usr/local/bin/redis-cli 
    进入redis-cli
    127.0.0.1:6379> set name tom
    OK
    127.0.0.1:6379> get name
    "tom"
    查看所有key值
    127.0.0.1:6379> keys *
        删除所有key值
    127.0.0.1:6379> flushall
    

    php

    $redis->set('name', 'tom');
    $redis->get('name');
    

    3.2 Hash操作

    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
    linux环境下

    127.0.0.1:6379> hmset user name tom age 20 description "i like run..."
    OK
    127.0.0.1:6379> hgetall user
    1) "name"
    2) "tom"
    3) "age"
    4) "20"
    5) "description"
    6) "i like run..."
    127.0.0.1:6379> hget user age
    "20"
    

    可参考文章:https://www.runoob.com/redis/redis-hashes.html

    php

    //为user表中的字段赋值。成功返回1,失败返回0。若user表不存在会先创建表再赋值,若字段已存在会覆盖旧值。
    $redis->hSet('user', 'name', 'tom');
    $redis->hSet('user', 'age', 20);
    $redis->hSet('user', 'description', 'i like run...');
    
    //获取user表中指定字段的值。若user表不存在则返回false。
    $redis->hGet('user', 'name');
    
    //查看user表的某个字段是否存在,存在返回true,否则返回false。
    $redis->hExists('user', 'name');
    
    
    //同时设置某个user表的多个字段值。成功返回true。
    $redis->hMset('user', ['name' => 'jet', 'age' => 18]);
    
    //同时获取某个user表的多个字段值。其中不存在的字段值为false。
    $redis->hMget('user', ['name', 'age']);
    
    //获取某个user表所有的字段和值。
    $redis->hGetAll('user');
    

    3.3 list操作

    Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

    linux下

    127.0.0.1:6379> lpush namelist tom kilye wendy
    (integer) 3
    127.0.0.1:6379> lrange namelist 0 2
    1) "wendy"
    2) "kilye"
    3) "tom"
    127.0.0.1:6379> del namelist
    (integer) 1
    

    php

    //存储数据到列表中
    $redis->lpush("namelist", "tom");
    $redis->lpush("namelist", "kilye");
    $redis->lpush("namelist", "wendy");
    
    // 获取存储的数据并输出
    $arList = $redis->lrange("namelist", 0 ,2);
    

    3.4集合操作

    Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    linux下

    127.0.0.1:6379> sadd databases redis mongodb
    (integer) 2
    127.0.0.1:6379> sadd databases mysql
    (integer) 1
    127.0.0.1:6379> sadd databases mysql
    (integer) 0
    127.0.0.1:6379> smembers databases
    1) "mongodb"
    2) "mysql"
    3) "redis"
    127.0.0.1:6379> del databases
    (integer) 1
    

    php

    //加入集合
    $redis->sAdd('databases', 'redis');
    $redis->sAdd('databases', 'mongodb');
    $redis->sAdd('databases', 'mysql');
    
    //返回集合
    $redis->sMembers('databases');
    
    //判断集合里是否存在指定元素,是返回true,否则返回false。
    $redis->sismember('databases', 'mysql');
    
    //返回集合中元素的数量。
    $redis->scard('databases');
    

    参考文章

    https://www.cnblogs.com/junyi-bk/p/10900450.html
    
    https://www.runoob.com/redis/redis-sets.html
  • 相关阅读:
    SE Springer小组《Spring音乐播放器》软件需求说明3
    SE Springer小组之《Spring音乐播放器》可行性研究报告三、四
    软件工程学习笔记一:单元测试
    关于软件工程
    离散数学中的命题表达式计算并生成真值表
    “A + B”竟然还能这样做?
    测试程序运行时间的方法——clock()
    排序(1)———选择排序及其优化
    临时存几张图
    伊利亚特
  • 原文地址:https://www.cnblogs.com/sentangle/p/11777342.html
Copyright © 2020-2023  润新知