Laravel Redis操作大全(一)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Laravel Redis操作大全(一)

1,普通得set/get操作,set操作,如果键名存在,则会覆盖原有得值


$redis = app("redis.connection");
$redis->set('library' , 'phpredis');//存储key为library ,值phpredis得记录
$redis->get("library");//获取key为library得记录值
set/get 多个key-value
$mkv = array(
                        "user:001"=>'First user',
                        "user:002"=>"Second user",
                        "user:003"=>"Third user"
);
$redis->mset($mkv); // 存储多个key对应的value
$retval = $redis->mget( array_keys($mkv) );//获取多个key对应的value


2 , setex 存放带存储时效的记录


$redis->setex("library" , 10 , 'phpredis');  //存储key为library,值为phpredis的记录,有效时长为10秒
add操作,不会覆盖已有值
   $redis->setnx("foo" , 12); //返回true, 添加成功  存在不做任何操作  否则创建
    $redis->setnx('foo' , 34); //返回false ,添加失败,因为存在键名foo的记录


3, getset 是 set的变种,结果返回替换前的值

 

$redis->getset('foo' , 56);//返回12;如果之前不存在记录,则返回null


4,incrby/incr/decrby/decr对值得递增和递减


$redis->incr('foo'); //返回57 ,递增 阶梯为1
   $redis->incrby('foo' , 2); //返回59 递增 阶梯为2


5, exists 检测是否存在  存在返回1 否则返回0


$redis->exists("foo");


6,type 类型检测,字符串返回 string ,列表返回 list , set表返回 set/zset ,hash表返回 hash


$redis->type('foo');


7, append 连接到已存在字符串


$redis->get('str');//返回test
 $redis->append('str' , "_123");


8,setrange 部分替换操作,并返回字符串长度


$redis->setrange('str' , 0 , 'abc'); //返回3,第2个参数为0等同于set操作
   $redis->setrange('str' , 2 , 'cd'); //返回4,表示从第2个字符后替换,这时‘str’ 为 ‘abcd’


9,substr 部分获取操作


$redis->substr('str' , 0 , 2);//返回abc 表示从第0个起,取到第2个字符串
    $redis->strlen('str'); // 返回4 此时‘str’ 为‘abcd’


10,  setbit 位存储


$redis->setbit('library' , 31 ,1); // 表示在第31位存入1
   getbit 位获取
    $redis->getbit('library' , 31); //返回1


11, keys 模糊查找功能,支持 * 号 以及 ?号 (匹配一个字符)


$redis->set('foo1',123);
    $redis->set('foo2' , 456);
    $redis->keys('foo*'); //返回foo1和foo2的array
    $redis->keys('f?0?'); // 同上


 12, randomkey  随机返回一个key

$redis->randomkey(); //可能是返回‘foo1’ 或者是foo2 及其它任何已存在的key


13, rename/renamenx 方式对key进行改名,所不同的是renamenx不允许改成已存在的key


$redis->rename('str','str2'); // 把原先命名为 str 的key改成了 str2


14,expire 设置key-value的时效性


    ttl  获取剩余有效期


    persist  重新设置为永久存储

$redis->expire('foo' , 10);//设置有效期为10秒
      $redis->ttl('foo'); // 返回剩余有效期值10秒
      $redispersist("fool");//取消有效期,变为永久存储


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
7月前
|
NoSQL Linux Redis
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
Redis性能优化问题之想确认Redis延迟变大是否因为fork耗时导致的,如何解决
|
8月前
|
缓存 NoSQL Redis
redis管道操作(节省网络IO开销)
pipeline中发送的每个command都会被server立即执行,如果执行失败,将会在此后的响应中得到信息;也就是pipeline并不是表达“所有command都一起成功”的语义,管道中前面命令失败,后面命令不会有影响,继续执行。
78 1
|
8月前
|
NoSQL Java Redis
如何在 Java 中操作这些 Redis 数据结构的基本方法
如何在 Java 中操作这些 Redis 数据结构的基本方法
52 2
|
8月前
|
NoSQL 数据管理 关系型数据库
数据管理DMS操作报错合集之控制台查看Redis时出现乱码是什么导致的
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
126 2
|
8月前
|
DataWorks NoSQL Java
DataWorks操作报错合集之数据集成使用公共数据集成资源组写入到redis数据源(使用的是VPC连接),提示以下错误:request action:[InnerVpcGrantVpcInstanceAccessToApp], message:[InvalidInstanceId.怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
8月前
|
存储 NoSQL Go
轻松上手,使用Go语言操作Redis数据库
轻松上手,使用Go语言操作Redis数据库
107 2
|
8月前
|
NoSQL Redis
加速 Redis 操作:掌握管道技术提升性能与效率
加速 Redis 操作:掌握管道技术提升性能与效率
|
8月前
|
存储 NoSQL Redis
Python—操作redis的一些心得
Python—操作redis的一些心得
40 0
|
8月前
|
存储 消息中间件 NoSQL
使用 Java 操作 Redis 数据类型的详解指南
使用 Java 操作 Redis 数据类型的详解指南
168 0
|
8月前
|
NoSQL Java Redis
【Redis】 Java操作客户端命令——集合操作与有序集合操作
【Redis】 Java操作客户端命令——集合操作与有序集合操作