PHP使用Redis

Posted sentangle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 Predis\\Client([
    \'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

以上是关于PHP使用Redis的主要内容,如果未能解决你的问题,请参考以下文章

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

如何使用sublime代码片段快速输入PHP头部版本声明

超级有用的9个PHP代码片段

PHP必用代码片段

超实用的php代码片段

比较有用的php代码片段