侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP针对redis常用操作实例详解

Redis  /  管理员 发布于 5年前   251

本文实例讲述了PHP针对redis常用操作。分享给大家供大家参考,具体如下:

/*1.Connection*/$redis = new Redis();$redis->connect('127.0.0.1',6379,1);//短链接,本地host,端口为6379,超过1秒放弃链接$redis->open('127.0.0.1',6379,1);//短链接(同上)$redis->pconnect('127.0.0.1',6379,1);//长链接,本地host,端口为6379,超过1秒放弃链接$redis->popen('127.0.0.1',6379,1);//长链接(同上)$redis->auth('password');//登录验证密码,返回【true | false】$redis->select(0);//选择redis库,0~15 共16个库$redis->close();//释放资源$redis->ping(); //检查是否还再链接,[+pong]$redis->ttl('key');//查看失效时间[-1 | timestamps]$redis->persist('key');//移除失效时间[ 1 | 0]$redis->sort('key',[$array]);//返回或保存给定列表、集合、有序集合key中经过排序的元素,$array为参数limit等!【配合$array很强大】 [array|false]/*2.共性的运算归类*/$redis->expire('key',10);//设置失效时间[true | false]$redis->move('key',15);//把当前库中的key移动到15库中[0|1]//string$redis->strlen('key');//获取当前key的长度$redis->append('key','string');//把string追加到key现有的value中[追加后的个数]$redis->incr('key');//自增1,如不存在key,赋值为1(只对整数有效,存储以10进制64位,redis中为str)[new_num | false]$redis->incrby('key',$num);//自增$num,不存在为赋值,值需为整数[new_num | false]$redis->decr('key');//自减1,[new_num | false]$redis->decrby('key',$num);//自减$num,[ new_num | false]$redis->setex('key',10,'value');//key=value,有效期为10秒[true]//list$redis->llen('key');//返回列表key的长度,不存在key返回0, [ len | 0]//set$redis->scard('key');//返回集合key的基数(集合中元素的数量)。[num | 0]$redis->sMove('key1', 'key2', 'member');//移动,将member元素从key1集合移动到key2集合。[1 | 0]//Zset$redis->zcard('key');//返回集合key的基数(集合中元素的数量)。[num | 0]$redis->zcount('key',0,-1);//返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员。[num | 0]//hash$redis->hexists('key','field');//查看hash中是否存在field,[1 | 0]$redis->hincrby('key','field',$int_num);//为哈希表key中的域field的值加上量(+|-)num,[new_num | false]$redis->hlen('key');//返回哈希表key中域的数量。[ num | 0]/*3.Server*/$redis->dbSize();//返回当前库中的key的个数$redis->flushAll();//清空整个redis[总true]$redis->flushDB();//清空当前redis库[总true]$redis->save();//同步??把数据存储到磁盘-dump.rdb[true]$redis->bgsave();//异步??把数据存储到磁盘-dump.rdb[true]$redis->info();//查询当前redis的状态 [verson:2.4.5....]$redis->lastSave();//上次存储时间key的时间[timestamp]$redis->watch('key','keyn');//监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断 [true]$redis->unwatch('key','keyn');//取消监视一个(或多个) key [true]$redis->multi(Redis::MULTI);//开启事务,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。$redis->multi(Redis::PIPELINE);//开启管道,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。$redis->exec();//执行所有事务块内的命令,;【事务块内所有命令的返回值,按命令执行的先后顺序排列,当操作被打断时,返回空值 false】/*4.String,键值对,创建更新同操作*/$redis->setOption(Redis::OPT_PREFIX,'hf_');//设置表前缀为hf_$redis->set('key',1);//设置key=aa value=1 [true]$redis->mset($arr);//设置一个或多个键值[true]$redis->setnx('key','value');//key=value,key存在返回false[|true]$redis->get('key');//获取key [value]$redis->mget($arr);//(string|arr),返回所查询键的值$redis->del($key_arr);//(string|arr)删除key,支持数组批量删除【返回删除个数】$redis->delete($key_str,$key2,$key3);//删除keys,[del_num]$redis->getset('old_key','new_value');//先获得key的值,然后重新赋值,[old_value | false]/*5.List栈的结构,注意表头表尾,创建更新分开操作*/$redis->lpush('key','value');//增,只能将一个值value插入到列表key的表头,不存在就创建 [列表的长度 |false]$redis->rpush('key','value');//增,只能将一个值value插入到列表key的表尾 [列表的长度 |false]$redis->lInsert('key', Redis::AFTER, 'value', 'new_value');//增,将值value插入到列表key当中,位于值value之前或之后。[new_len | false]$redis->lpushx('key','value');//增,只能将一个值value插入到列表key的表头,不存在不创建 [列表的长度 |false]$redis->rpushx('key','value');//增,只能将一个值value插入到列表key的表尾,不存在不创建 [列表的长度 |false]$redis->lpop('key');//删,移除并返回列表key的头元素,[被删元素 | false]$redis->rpop('key');//删,移除并返回列表key的尾元素,[被删元素 | false]$redis->lrem('key','value',0);//删,根据参数count的值,移除列表中与参数value相等的元素count=(0|-n表头向尾|+n表尾向头移除n个value) [被移除的数量 | 0]$redis->ltrim('key',start,end);//删,列表修剪,保留(start,end)之间的值 [true|false]$redis->lset('key',index,'new_v');//改,从表头数,将列表key下标为第index的元素的值为new_v, [true | false]$redis->lindex('key',index);//查,返回列表key中,下标为index的元素[value|false]$redis->lrange('key',0,-1);//查,(start,stop|0,-1)返回列表key中指定区间内的元素,区间以偏移量start和stop指定。[array|false]/*6.Set,没有重复的member,创建更新同操作*/$redis->sadd('key','value1','value2','valuen');//增,改,将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。[insert_num]$redis->srem('key','value1','value2','valuen');//删,移除集合key中的一个或多个member元素,不存在的member元素会被忽略 [del_num | false]$redis->smembers('key');//查,返回集合key中的所有成员 [array | '']$redis->sismember('key','member');//判断member元素是否是集合key的成员 [1 | 0]$redis->spop('key');//删,移除并返回集合中的一个随机元素 [member | false]$redis->srandmember('key');//查,返回集合中的一个随机元素 [member | false]$redis->sinter('key1','key2','keyn');//查,返回所有给定集合的交集 [array | false]$redis->sunion('key1','key2','keyn');//查,返回所有给定集合的并集 [array | false]$redis->sdiff('key1','key2','keyn');//查,返回所有给定集合的差集 [array | false]/*7.Zset,没有重复的member,有排序顺序,创建更新同操作*/$redis->zAdd('key',$score1,$member1,$scoreN,$memberN);//增,改,将一个或多个member元素及其score值加入到有序集key当中。[num | 0]$redis->zrem('key','member1','membern');//删,移除有序集key中的一个或多个成员,不存在的成员将被忽略。[del_num | 0]$redis->zscore('key','member');//查,通过值反拿权 [num | null]$redis->zrange('key',$start,$stop);//查,通过(score从小到大)【排序名次范围】拿member值,返回有序集key中,【指定区间内】的成员 [array | null]$redis->zrevrange('key',$start,$stop);//查,通过(score从大到小)【排序名次范围】拿member值,返回有序集key中,【指定区间内】的成员 [array | null]$redis->zrangebyscore('key',$min,$max[,$config]);//查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从小到大排)成员[array | null]$redis->zrevrangebyscore('key',$max,$min[,$config]);//查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从大到小排)成员[array | null]$redis->zrank('key','member');//查,通过member值查(score从小到大)排名结果中的【member排序名次】[order | null]$redis->zrevrank('key','member');//查,通过member值查(score从大到小)排名结果中的【member排序名次】[order | null]$redis->ZINTERSTORE();//交集$redis->ZUNIONSTORE();//差集/*8.Hash,表结构,创建更新同操作*/$redis->hset('key','field','value');//增,改,将哈希表key中的域field的值设为value,不存在创建,存在就覆盖【1 | 0】$redis->hget('key','field');//查,取值【value|false】$arr = array('one'=>1,2,3);$arr2 = array('one',0,1);$redis->hmset('key',$arr);//增,改,设置多值$arr为(索引|关联)数组,$arr[key]=field, [ true ]$redis->hmget('key',$arr2);//查,获取指定下标的field,[$arr | false]$redis->hgetall('key');//查,返回哈希表key中的所有域和值。[当key不存在时,返回一个空表]$redis->hkeys('key');//查,返回哈希表key中的所有域。[当key不存在时,返回一个空表]$redis->hvals('key');//查,返回哈希表key中的所有值。[当key不存在时,返回一个空表]$redis->hdel('key',$arr2);//删,删除指定下标的field,不存在的域将被忽略,[num | false]

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • 30个php操作redis常用方法代码例子
  • redis 队列操作的例子(php)
  • php操作redis中的hash和zset类型数据的方法和代码例子
  • php操作redis缓存方法分享
  • PHP操作Redis常用技巧总结
  • PHP实现操作redis的封装类完整实例
  • PHP操作Redis数据库常用方法示例
  • PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
  • thinkPHP框架通过Redis实现增删改查操作的方法详解
  • php成功操作redis cluster集群的实例教程


  • 上一条:
    PHP Redis扩展无法加载的问题解决方法
    下一条:
    PHP swoole和redis异步任务实现方法分析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Redis中能实现的功能、常见应用介绍(0个评论)
    • 2024年Redis面试题之一(0个评论)
    • 在redis缓存常见出错及解决方案(0个评论)
    • 在redis中三种特殊数据类型:地理位置、基数(cardinality)估计、位图(Bitmap)使用场景介绍浅析(2个评论)
    • Redis 删除 key用 del 和 unlink 有啥区别?(1个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-12
    • 2020-03
    • 2020-05
    • 2021-04
    • 2022-03
    • 2022-05
    • 2022-08
    • 2023-02
    • 2023-04
    • 2023-07
    • 2024-01
    • 2024-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客