文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP操作redis怎么理解

2023-06-04 10:34

关注

PHP操作redis怎么理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis支持的数据类型有 Stirng(字符串), List(列表), Hash(字典), Set(集合), Sorted Set(有序集合);

redis版本是Redis 2.6.12 系统是在Windows+Apache2.4+php5.6

连接:

点击(此处)折叠或打开

  1. //实例化redis

  2.     $redis = new Redis();

  3.     //连接

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

  5.     //检测是否连接成功

  6.     echo "Server is running: " . $redis->ping();

  7.     // 输出结果 Server is running: +PONG

Strng(字符串):

点击(此处)折叠或打开

  1. // 设置一个字符串的值

  2.     $redis->set('cat', 111);

  3.     //获取一个字符串的值

  4.     echo $redis->get('cat'); // 111

  5.     // 重复set

  6.     $redis->set('cat', 222);

  7.     echo $redis->get('cat'); // 222

List(列表):

点击(此处)折叠或打开

  1. //列表

  2.     //存储数据到列表中

  3.     $redis->lpush('list', 'html');

  4.     $redis->lpush('list', 'css');

  5.     $redis->lpush('list', 'php');

  6.     //获取列表中所有的值

  7.     $list = $redis->lrange('list', 0, -1);

  8.     print_r($list);echo '<br>';

  9.     //从右侧加入一个

  10.     $redis->rpush('list', 'mysql');

  11.     $list = $redis->lrange('list', 0, -1);

  12.     print_r($list);echo '<br>';

  13.     //从左侧弹出一个

  14.     $redis->lpop('list');

  15.     $list = $redis->lrange('list', 0, -1);

  16.     print_r($list);echo '<br>';

  17.     //从右侧弹出一个

  18.     $redis->rpop('list');

  19.     $list = $redis->lrange('list', 0, -1);

  20.     print_r($list);echo '<br>';

  21.     // 结果

  22.     // Array ( [0] => php [1] => css [2] => html )

  23.     // Array ( [0] => php [1] => css [2] => html [3] => mysql )

  24.     // Array ( [0] => css [1] => html [2] => mysql )

  25.     // Array ( [0] => css [1] => html )

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //列表

  7.     //存储数据到列表中

  8.     $redis->lpush('list', 'html');

  9.     $redis->lpush('list', 'css');

  10.     $redis->lpush('list', 'php');

  11.     $redis->lpush('list', 'mysql');

  12.     $redis->lpush('list', 'javascript');

  13.     $redis->lpush('list', 'ajax');

  14.     //获取列表中所有的值

  15.     $list = $redis->lrange('list', 0, -1);

  16.     print_r($list);echo '<br>';

  17.     //获取列表的长度

  18.     $length = $redis->lsize('list');

  19.     echo $length;echo '<br>';

  20.     //返回列表key中index位置的值

  21.     echo $redis->lget('list', 2);echo '<br>';

  22.     echo $redis->lindex('list', 2);echo '<br>';

  23.     //设置列表中index位置的值

  24.     echo $redis->lset('list', 2, 'linux');echo '<br>';

  25.     $list = $redis->lrange('list', 0, -1);

  26.     print_r($list);echo '<br>';

  27.     //返回key中从start到end位置间的元素

  28.     $list = $redis->lrange('list', 0, 2);

  29.     print_r($list);echo '<br>';

  30.     $list = $redis->lgetrange('list', 0, 2);

  31.     print_r($list);echo '<br>';

  32.     //截取链表中start到end的元素

  33.     //截取列表后列表发生变化,列表保留截取的元素,其余的删除

  34.     $list = $redis->ltrim('list', 0, 1);

  35.     print_r($list);echo '<br>';

  36.     

  37.     $list = $redis->lrange('list', 0, -1);

  38.     print_r($list);echo '<br>';

  39.     // 结果

  40.     // Array ( [0] => ajax [1] => javascript [2] => mysql [3] => php [4] => css [5] => html )

  41.     // 6

  42.     // mysql

  43.     // mysql

  44.     // 1

  45.     // Array ( [0] => ajax [1] => javascript [2] => linux [3] => php [4] => css [5] => html )

  46.     // Array ( [0] => ajax [1] => javascript [2] => linux )

  47.     // Array ( [0] => ajax [1] => javascript [2] => linux )

  48.     // 1

  49.     

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //列表

  7.     //存储数据到列表中

  8.     $redis->lpush('list', 'html');

  9.     $redis->lpush('list', 'html');

  10.     $redis->lpush('list', 'html');

  11.     $redis->lpush('list', 'css');

  12.     $redis->lpush('list', 'php');

  13.     $redis->lpush('list', 'mysql');

  14.     $redis->lpush('list', 'javascript');

  15.     $redis->lpush('list', 'html');

  16.     $redis->lpush('list', 'html');

  17.     $redis->lpush('list', 'html');

  18.     $redis->lpush('list', 'ajax');

  19.     //获取列表中所有的值

  20.     $list = $redis->lrange('list', 0, -1);

  21.     print_r($list);echo '<br>';

  22.     //删除列表中count个值为value的元素

  23.     //从左向右删

  24.     $redis->lrem('list', 'html', 2);

  25.     $list = $redis->lrange('list', 0, -1);

  26.     print_r($list);echo '<br>';

  27.     

  28.     //从右向左删

  29.     $redis->lrem('list', 'html', -2);

  30.     $list = $redis->lrange('list', 0, -1);

  31.     print_r($list);echo '<br>';

  32.     //删除所有

  33.     $redis->lrem('list', 'html', 0);

  34.     $list = $redis->lrange('list', 0, -1);

  35.     print_r($list);echo '<br>';

  36.     // 结果

  37.     // Array ( [0] => ajax [1] => html [2] => html [3] => html [4] => javascript [5] => mysql [6] => php [7] => css [8] => html [9] => html [10] => html )

  38.     // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html [7] => html [8] => html )

  39.     // Array ( [0] => ajax [1] => html [2] => javascript [3] => mysql [4] => php [5] => css [6] => html )

  40.     

 Hash(字典):

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //字典

  7.     //给hash表中某个key设置value

  8.     //如果没有则设置成功,返回1,如果存在会替换原有的值,返回0,失败返回0

  9.     echo $redis->hset('hash', 'cat', 'cat');echo '<br>';

  10.     echo $redis->hset('hash', 'cat', 'cat');echo '<br>';

  11.     echo $redis->hset('hash', 'cat', 'cat1');echo '<br>';

  12.     echo $redis->hset('hash', 'dog', 'dog');echo '<br>';

  13.     echo $redis->hset('hash', 'bird', 'bird');echo '<br>';

  14.     echo $redis->hset('hash', 'monkey', 'monkey');echo '<br>';

  15.     //获取hash中某个key的值

  16.     echo $redis->hget('hash', 'cat');echo '<br>';

  17.     //获取hash中所有的keys

  18.     $arr = $redis->hkeys('hash');

  19.     print_r($arr);echo '<br>';

  20.     //获取hash中所有的值 顺序是随机的

  21.     $arr = $redis->hvals('hash');

  22.     print_r($arr);echo '<br>';

  23.     //获取一个hash中所有的key和value 顺序是随机的

  24.     $arr = $redis->hgetall('hash');

  25.     print_r($arr);echo '<br>';

  26.     //获取hash中key的数量

  27.     echo $redis->hlen('hash');echo '<br>';

  28.     //删除hash中一个key 如果表不存在或key不存在则返回false

  29.     echo $redis->hdel('hash', 'dog');echo '<br>';

  30.     var_dump($redis->hdel('hash', 'rabbit'));echo '<br>';

  31.     // 结果

  32.     // 1

  33.     // 0

  34.     // 0

  35.     // 1

  36.     // 1

  37.     // 1

  38.     // cat1

  39.     // Array ( [0] => cat [1] => dog [2] => bird [3] => monkey )

  40.     // Array ( [0] => cat1 [1] => dog [2] => bird [3] => monkey )

  41.     // Array ( [cat] => cat1 [dog] => dog [bird] => bird [monkey] => monkey )

  42.     // 4

  43.     // 1

  44.     

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //字典

  7.     //批量设置多个key的值

  8.     $arr = [1=>1, 2=>2, 3=>3, 4=>4, 5=>5];

  9.     $redis->hmset('hash', $arr);

  10.     print_r($redis->hgetall('hash'));echo '<br>';

  11.     // 批量获得额多个key的值

  12.     $arr = [1, 2, 3, 5];

  13.     $hash = $redis->hmget('hash', $arr);

  14.     print_r($hash);echo '<br>';

  15.     //检测hash中某个key知否存在

  16.     echo $redis->hexists('hash', '1');echo '<br>';

  17.     var_dump($redis->hexists('hash', 'cat'));echo '<br>';

  18.     print_r($redis->hgetall('hash'));echo '<br>';

  19.     //给hash表中key增加一个整数值

  20.     $redis->hincrby('hash', '1', 1);

  21.     print_r($redis->hgetall('hash'));echo '<br>';

  22.     //给hash中的某个key增加一个浮点值

  23.     $redis->hincrbyfloat('hash', 2, 1.3);

  24.     print_r($redis->hgetall('hash'));echo '<br>';

  25.     //结果

  26.     // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )

  27.     // Array ( [1] => 1 [2] => 2 [3] => 3 [5] => 5 )

  28.     // 1

  29.     // bool(false)

  30.     // Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )

  31.     // Array ( [1] => 2 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )

  32.     


Set(集合):

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //集合

  7.     // 添加一个元素

  8.     echo $redis->sadd('set', 'cat');echo '<br>';

  9.     echo $redis->sadd('set', 'cat');echo '<br>';

  10.     echo $redis->sadd('set', 'dog');echo '<br>';

  11.     echo $redis->sadd('set', 'rabbit');echo '<br>';

  12.     echo $redis->sadd('set', 'bear');echo '<br>';

  13.     echo $redis->sadd('set', 'horse');echo '<br>';

  14.     // 查看集合中所有的元素

  15.     $set = $redis->smembers('set');

  16.     print_r($set);echo '<br>';

  17.     //删除集合中的value

  18.     echo $redis->srem('set', 'cat');echo '<br>';

  19.     var_dump($redis->srem('set', 'bird'));echo '<br>';

  20.     $set = $redis->smembers('set');

  21.     print_r($set);echo '<br>';

  22.     //判断元素是否是set的成员

  23.     var_dump($redis->sismember('set', 'dog'));echo '<br>';

  24.     var_dump($redis->sismember('set', 'bird'));echo '<br>';

  25.     //查看集合中成员的数量

  26.     echo $redis->scard('set');echo '<br>';

  27.     //移除并返回集合中的一个随机元素(返回被移除的元素)

  28.     echo $redis->spop('set');echo '<br>';

  29.     print_r($redis->smembers('set'));echo '<br>';

  30.     // 结果

  31.     // 1

  32.     // 0

  33.     // 1

  34.     // 1

  35.     // 1

  36.     // 1

  37.     // Array ( [0] => rabbit [1] => cat [2] => bear [3] => dog [4] => horse )

  38.     // 1

  39.     // int(0)

  40.     // Array ( [0] => dog [1] => rabbit [2] => horse [3] => bear )

  41.     // bool(true)

  42.     // bool(false)

  43.     // 4

  44.     // bear

  45.     

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //集合

  7.     $redis->sadd('set', 'horse');

  8.     $redis->sadd('set', 'cat');

  9.     $redis->sadd('set', 'dog');

  10.     $redis->sadd('set', 'bird');

  11.     $redis->sadd('set2', 'fish');

  12.     $redis->sadd('set2', 'dog');

  13.     $redis->sadd('set2', 'bird');

  14.     print_r($redis->smembers('set'));echo '<br>';

  15.     print_r($redis->smembers('set2'));echo '<br>';

  16.     //返回集合的交集

  17.     print_r($redis->sinter('set', 'set2'));echo '<br>';

  18.     //执行交集操作 并结果放到一个集合中

  19.     $redis->sinterstore('output', 'set', 'set2');

  20.     print_r($redis->smembers('output'));echo '<br>';

  21.     //返回集合的并集

  22.     print_r($redis->sunion('set', 'set2'));echo '<br>';

  23.     //执行并集操作 并结果放到一个集合中

  24.     $redis->sunionstore('output', 'set', 'set2');

  25.     print_r($redis->smembers('output'));echo '<br>';

  26.     //返回集合的差集

  27.     print_r($redis->sdiff('set', 'set2'));echo '<br>';

  28.     //执行差集操作 并结果放到一个集合中

  29.     $redis->sdiffstore('output', 'set', 'set2');

  30.     print_r($redis->smembers('output'));echo '<br>';

  31.     // 结果

  32.     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse )

  33.     // Array ( [0] => bird [1] => dog [2] => fish )

  34.     // Array ( [0] => bird [1] => dog )

  35.     // Array ( [0] => dog [1] => bird )

  36.     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )

  37.     // Array ( [0] => cat [1] => dog [2] => bird [3] => horse [4] => fish )

  38.     // Array ( [0] => horse [1] => cat )

  39.     

Sorted Set(有序集合):

点击(此处)折叠或打开

  1. <?php

  2.     //实例化redis

  3.     $redis = new Redis();

  4.     //连接

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

  6.     //有序集合

  7.     //添加元素

  8.     echo $redis->zadd('set', 1, 'cat');echo '<br>';

  9.     echo $redis->zadd('set', 2, 'dog');echo '<br>';

  10.     echo $redis->zadd('set', 3, 'fish');echo '<br>';

  11.     echo $redis->zadd('set', 4, 'dog');echo '<br>';

  12.     echo $redis->zadd('set', 4, 'bird');echo '<br>';

  13.     

  14.     //返回集合中的所有元素

  15.     print_r($redis->zrange('set', 0, -1));echo '<br>';

  16.     print_r($redis->zrange('set', 0, -1, true));echo '<br>';

  17.     //返回元素的score值

  18.     echo $redis->zscore('set', 'dog');echo '<br>';

  19.     //返回存储的个数

  20.     echo $redis->zcard('set');echo '<br>';

  21.     //删除指定成员

  22.     $redis->zrem('set', 'cat');

  23.     print_r($redis->zrange('set', 0, -1));echo '<br>';

  24.     //返回集合中介于min和max之间的值的个数

  25.     print_r($redis->zcount('set', 3, 5));echo '<br>';

  26.     //返回有序集合中score介于min和max之间的值

  27.     print_r($redis->zrangebyscore('set', 3, 5));echo '<br>';

  28.     print_r($redis->zrangebyscore('set', 3, 5, ['withscores'=>true]));echo '<br>';

  29.     //返回集合中指定区间内所有的值

  30.     print_r($redis->zrevrange('set', 1, 2));echo '<br>';

  31.     print_r($redis->zrevrange('set', 1, 2, true));echo '<br>';

  32.     //有序集合中指定值的socre增加

  33.     echo $redis->zscore('set', 'dog');echo '<br>';

  34.     $redis->zincrby('set', 2, 'dog');

  35.     echo $redis->zscore('set', 'dog');echo '<br>';

  36.     //移除score值介于min和max之间的元素

  37.     print_r($redis->zrange('set', 0, -1, true));echo '<br>';

  38.     print_r($redis->zremrangebyscore('set', 3, 4));echo '<br>';

  39.     print_r($redis->zrange('set', 0, -1, true));echo '<br>';

  40.     //结果

  41.     // 1

  42.     // 0

  43.     // 0

  44.     // 0

  45.     // 0

  46.     // Array ( [0] => cat [1] => fish [2] => bird [3] => dog )

  47.     // Array ( [cat] => 1 [fish] => 3 [bird] => 4 [dog] => 4 )

  48.     // 4

  49.     // 4

  50.     // Array ( [0] => fish [1] => bird [2] => dog )

  51.     // 3

  52.     // Array ( [0] => fish [1] => bird [2] => dog )

  53.     // Array ( [fish] => 3 [bird] => 4 [dog] => 4 )

  54.     // Array ( [0] => bird [1] => fish )

  55.     // Array ( [bird] => 4 [fish] => 3 )

  56.     // 4

  57.     // 6

  58.     // Array ( [fish] => 3 [bird] => 4 [dog] => 6 )

  59.     // 2

  60.     

关于PHP操作redis怎么理解问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯