在php中redis的用途

Posted 染卷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在php中redis的用途相关的知识,希望对你有一定的参考价值。

作为一个业余的phper一直在避免接触redis,也没有系统的学习过redis,前几天又翻了翻网上关于redis的文章,看懂了一点点,做个笔记(只涉及到很基础的一部分,redis的作用与用途不是一两天能掌握的)。

一、redis的作用

搭配mysql做缓存,减轻数据库压力,提高系统响应速度;任务队列,按队列顺序依次完成任务(比如订单);做计数、排名、统计;redis主从中从服务器做持久化存储。

二、php中利用redis缓存数据库数据的方法

比如网上商城的宝贝展示,一般情况下所有人看到的宝贝列表都是一样的,如果使用php+mysql做的话,每次用户打开商城都会到数据库查询一遍。有了redis,就可以在用户登录商城的时候先看下redis里面有没有商品列表的数据,如果有就直接取redis即可,如果没有就查数据库并将结果存入redis中,这样下次就可以避免查库了(最好给该redis数据设置一个过期时间,防止有新商品上架了客户却看不到redis更新)。

如果redis数据来自数据库的话,代码中每次都需要判断redis有没有数据,如果没有才查库并存入redis,这种判断看起来增加了cpu的计算量,其实基本可以忽略不记!比起数据库的连接、查询开销节省的不是一点点性能。

  1. <?php

  2. if (redis 存在商品列表)

  3.   获得redis商品列表数据

  4. else

  5.   查询sql获得商品列表数据

  6.   获得sql商品列表数据

  7.   将商品列表数据存入redis

三、php操作redis

Redis在PHP项目中的应用(sql操作结合redis、mysql)

Redis在Php项目中的实际应用场景

php使用redis的几种常见方式和用法(缓存、队列、锁、发布订阅)

  1. <?php

  2. //创建一个redis客户端

  3. $redis = new Redis();

  4. //连接redis服务,指定主机,端口,和超时时间

  5. $redis->connect('127.0.0.1', 6379, 60);

  6. //进行密码验证

  7. $redis->auth('');

  8. //设置键的值,成功返回true,失败返回false

  9. $ret = $redis->set('app_id', '1234567890');

  10. var_dump($ret);

  11. //获取键的值,成功返回键值,失败返回false

  12. $ret = $redis->get('app_id');

  13. var_dump($ret);

  14. //设置新值,返回旧值,如果key不存在,则设置值,返回false

  15. $ret = $redis->getSet('app_id', '666666666');

  16. //一次设置多个键值对

  17. $ret = $redis->mset(['db_name' => 'test', 'db_host' => 'localhost']);

  18. var_dump($ret);

  19. //一次获取多个键值对,返回一个数组

  20. $ret = $redis->mget(['db_name', 'db_host']);

  21. var_dump($ret);

  22. //设置键值,和过期时间,单位:秒,成功返回true

  23. $ret = $redis->setex('name', 10, 'hello');

  24. var_dump($ret);

  25. //设置键值,过期时间以毫秒为单位

  26. $ret = $redis->psetex('age', 10, '28');

  27. //key不存在时,才设置值,key不存在且设置成功返回true,否则返回false

  28. $ret = $redis->setnx('name', 'test');

  29. //获取键值的字符串长度,如果key不存在,返回0,如果值不为字符串返回false

  30. $ret = $redis->strlen('name');

  31. //将key中存储的数字值加1,如果key不存在先初始为0再加1,如果存储的不是数字值,则返回false,成功返回新增值

  32. $ret = $redis->incr('age');

  33. var_dump($ret);

  34. //将key中存储的数字值加指定增量值

  35. $ret = $redis->incrBy('age', 10);

  36. //将key中存储的数字值减1

  37. $ret = $redis->decr('age');

  38. var_dump($ret);

  39. //将key中存储的数字值减指定减量值

  40. $ret = $redis->decrBy('age', 10);

  41. //从列表头部插入一个值

  42. $ret = $redis->lpush('students', 'xiaoxu');

  43. $ret = $redis->lpush('students', 'xiaoxu2');

  44. var_dump($ret);

  45. //从列表尾部插入一个值

  46. $ret = $redis->rpush('students', 'xiaowang');

  47. $ret = $redis->rpush('students', 'xiaowang2');

  48. //移出并获取列表的第一个元素,若key不存在或不是列表则返回false。

  49. $ret = $redis->lpop('students');

  50. var_dump($ret);

  51. //移出并获取列表的最后一个元素,若key不存在或不是列表则返回false。

  52. $ret = $redis->rpop('students');


基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/在php中redis的用途/



以上是关于在php中redis的用途的主要内容,如果未能解决你的问题,请参考以下文章

PHP中cURL的用途是啥? [复制]

PHP中@符号的用途是啥?

Redis的多种用途

2016022613 - redis连接命令集合

PHP 构造函数的用途

REDIS04_bitmap的概述用途setbitgetbitbigcountbittopstrlen命令使用