在php中redis的用途
作为一个业余的phper一直在避免接触redis,也没有系统的学习过redis,前几天又翻了翻网上关于redis的文章,看懂了一点点,做个笔记(只涉及到很基础的一部分,redis的作用与用途不是一两天能掌握的)。
一、redis的作用
搭配mysql做缓存,减轻数据库压力,提高系统响应速度;任务队列,按队列顺序依次完成任务(比如订单);做计数、排名、统计;redis主从中从服务器做持久化存储。
二、php中利用redis缓存数据库数据的方法
比如网上商城的宝贝展示,一般情况下所有人看到的宝贝列表都是一样的,如果使用php+mysql做的话,每次用户打开商城都会到数据库查询一遍。有了redis,就可以在用户登录商城的时候先看下redis里面有没有商品列表的数据,如果有就直接取redis即可,如果没有就查数据库并将结果存入redis中,这样下次就可以避免查库了(最好给该redis数据设置一个过期时间,防止有新商品上架了客户却看不到redis更新)。
如果redis数据来自数据库的话,代码中每次都需要判断redis有没有数据,如果没有才查库并存入redis,这种判断看起来增加了cpu的计算量,其实基本可以忽略不记!比起数据库的连接、查询开销节省的不是一点点性能。
<?php if (redis 存在商品列表) 获得redis商品列表数据 else 查询sql获得商品列表数据 获得sql商品列表数据 将商品列表数据存入redis
三、php操作redis
Redis在PHP项目中的应用(sql操作结合redis、mysql)
php使用redis的几种常见方式和用法(缓存、队列、锁、发布订阅)
<?php //创建一个redis客户端 $redis = new Redis(); //连接redis服务,指定主机,端口,和超时时间 $redis->connect('127.0.0.1', 6379, 60); //进行密码验证 $redis->auth(''); //设置键的值,成功返回true,失败返回false $ret = $redis->set('app_id', '1234567890'); var_dump($ret); //获取键的值,成功返回键值,失败返回false $ret = $redis->get('app_id'); var_dump($ret); //设置新值,返回旧值,如果key不存在,则设置值,返回false $ret = $redis->getSet('app_id', '666666666'); //一次设置多个键值对 $ret = $redis->mset(['db_name' => 'test', 'db_host' => 'localhost']); var_dump($ret); //一次获取多个键值对,返回一个数组 $ret = $redis->mget(['db_name', 'db_host']); var_dump($ret); //设置键值,和过期时间,单位:秒,成功返回true $ret = $redis->setex('name', 10, 'hello'); var_dump($ret); //设置键值,过期时间以毫秒为单位 $ret = $redis->psetex('age', 10, '28'); //key不存在时,才设置值,key不存在且设置成功返回true,否则返回false $ret = $redis->setnx('name', 'test'); //获取键值的字符串长度,如果key不存在,返回0,如果值不为字符串返回false $ret = $redis->strlen('name'); //将key中存储的数字值加1,如果key不存在先初始为0再加1,如果存储的不是数字值,则返回false,成功返回新增值 $ret = $redis->incr('age'); var_dump($ret); //将key中存储的数字值加指定增量值 $ret = $redis->incrBy('age', 10); //将key中存储的数字值减1 $ret = $redis->decr('age'); var_dump($ret); //将key中存储的数字值减指定减量值 $ret = $redis->decrBy('age', 10); //从列表头部插入一个值 $ret = $redis->lpush('students', 'xiaoxu'); $ret = $redis->lpush('students', 'xiaoxu2'); var_dump($ret); //从列表尾部插入一个值 $ret = $redis->rpush('students', 'xiaowang'); $ret = $redis->rpush('students', 'xiaowang2'); //移出并获取列表的第一个元素,若key不存在或不是列表则返回false。 $ret = $redis->lpop('students'); var_dump($ret); //移出并获取列表的最后一个元素,若key不存在或不是列表则返回false。 $ret = $redis->rpop('students');
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/在php中redis的用途/
赞赏
微信赞赏
支付宝赞赏
发表评论