PHP脚本使用Redis

点击上方蓝字关注我,我们一起学编程
如果觉得内容还不错,请帮忙分享一下
有任何疑问或者想看的内容,欢迎私信

微信搜索《编程笔记本》(codingbook2020),获取更多干活。

昨天我们一起学习了 redis 的使用方法,但是在昨天的学习中,我们只涉及了命令行的操作,在大部分场合我们都不会直接操作命令行,而是通过在其他应用中嵌入使用 redis 。

例如,我们在开发 web 应用时常常用到 redis 。比方说,我们要将 web 表单中输入的手机号作为 key ,再随机生成一个六位数的验证码,作为 value ,将这个 key-value 存入 redis ,并设置 EXPIRE 时间为 300 秒。最后通过短信将该六位数验证码发送到指定手机,供用户输入。用户输入验证码后,我们再将用户输入的验证码与 redis 中存储的数据进行比对。这就是常见的验证码操作环节。

但是,我们的操作语言是 java ,并不是 redis 命令行,所以我们需要在 redis 和 java 之间架设一道桥梁,使得我们能够通过 java 去操作 redis ,这就是人们常说的“驱动”。

今天我们要介绍的是在 php 中操作 redis 。

php

php 即“超文本预处理器”,是一种通用开源脚本语言。php 是在服务器端执行的脚本语言,与 C 语言类似,是常用的网站编程语言。PHP独特的语法混合了 C、Java、Perl 以及 php 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

驱动

php 提供了 redis 的驱动程序,由于笔者的设备是 ubuntu 系统,在 linux 系统下,安装这个驱动十分简单,只要一个命令即可:

sudo apt-get install php-redis

安装完这个驱动程序后,我们就能在 php 脚本中操作 redis 了。

php 脚本操作 redis

连接服务器

我们要使用 redis ,第一步就是登录 redis 服务器,在 php 脚本中也是如此。

<?php
    // 连接Redis服务器
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('codingbook');
    if(! $redis)
    {
	echo "Connect to Redis failed\n";
    }
    echo "Connect to Redis successfully\n";
    // 查看是否运行
    echo "Server is running: " . $redis->ping() . "\n";
?>

上述脚本中,我们先声明一个 Redis 的对象指针,后续的操作都是基于这个指针完成的。connect 函数连接指定 IP 的指定端口,auth 函数用于登录认证。ping 函数等同于命令行中的 ping ,用于测试服务。

我们先启动 redis 服务器,再运行上述脚本:

jincheng@LAPTOP-E4NSNKIT:~/Tmp$ php test.php
Connect to Redis successfully
Server is running: +PONG
jincheng@LAPTOP-E4NSNKIT:~/Tmp$

可以看到,我们已经成功地连接上 redis 服务器,并且 ping 指令也得到响应。

成功连接后,我们就可以再 php 脚本中操作 redis 了,下面我们演示几个例子。

操作 redis 字符串

<?php
    //连接本地的 Redis 服务
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('codingbook');
    if(! $redis)
    {
	echo "Connect to Redis failed\n";
    }
    echo "Connect to Redis successfully\n";

    // 设置字符串数据
    $redis->set("ID", "codingbook2020");
    // 获取存储的数据
    echo "key ID maps " . $redis->get("ID") . "\n";
?>

上述脚本中,我们先连接 redis 服务器,再通过 set 命令设置字符串,通过 get 命令获取字符串的值。运行结果如下:

jincheng@LAPTOP-E4NSNKIT:~/Tmp$ php test.php
Connect to Redis successfully
key ID maps codingbook2020
jincheng@LAPTOP-E4NSNKIT:~/Tmp$

操作 redis 列表

<?php
    //连接本地的 Redis 服务
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('codingbook');
    if(! $redis)
    {
	echo "Connect to Redis failed\n";
    }
    echo "Connect to Redis successfully\n";

    $redis->lpush("phones", "huawei");
    $redis->lpush("phones", "xiaomi");
    $redis->lpush("phones", "oppo");
    // 获取存储的数据并输出
    $arList = $redis->lrange("phones", 0 ,5);
    echo "list phones contains:\n";
    print_r($arList);
?>

上述脚本中,通过 lpush 命令向指定列表中插入字符串,使用 lrange 命令保存列表的值,通过 php 的输出命令 print_r 输出该列表。运行结果如下:

jincheng@LAPTOP-E4NSNKIT:~/Tmp$ php test.php
Connect to Redis successfully
list phones contains:
Array
(
    [0] => oppo
    [1] => xiaomi
    [2] => huawei
)
jincheng@LAPTOP-E4NSNKIT:~/Tmp$

我们在 php 脚本中可以操作几乎所有的 redis 命令。我们只举这两个例子。通过这两个例子我们可以看到,在 php 中操作 redis ,命令的样式和 redis 中的命令几乎相同,这对我们通过 php 操作 redis 十分友好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值