首页 > 后端开发 > php教程 > redis在php下面的命令大全

redis在php下面的命令大全

不言
发布: 2023-03-25 06:44:01
原创
2201 人浏览过

这篇文章主要介绍了关于redis在php下面的命令大全,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

redis的任用
应用场景缓存、队列、数据存储,作用于内存,比较容易丢

$user=User::all()->toarray();

string类型只能是单独的string,不能是数组

set
添加
Redis::set('number', 1);
Redis::append('number',2);
//追加的
dd(Redis::strlen('number'));
//返回字符的长度
get
获取值
dd(redis::get('nember'));
getset 
先获取,完后设置该值
dd(redis::getset('nember','baidu123'));
incr 
适合做计数器
Redis::incr('number');
Redis::incrBy('number',3);
//直接加3
incrByFloat 
浮点数字直接加1.5
Redis::set('number', 1);
dd(redis::incrByFloat('number',0.03));
exists 
判断键值是否存在
dd(redis::exists('key')); 
//存在是1,不存在是0
mset mget 
批量操作
Redis::set('d', 555);
redis::mset(['a'=>1,'b'=>2,'c'=>3]);
print_r(redis::mget(['a','b','c','d']));
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 555 )
登录后复制

list类型 (list push pop llen)

lpus 
添加左到右面
redis::del('la');
redis::lpush('la',1);
redis::lpush('la',2);
redis::lpush('la',3);
dd(redis::lrange('la',0,6));
//展示la从0到6
rpush  添加右到左面
redis::rpush('ra',1);
redis::rpush('ra',2);
redis::rpush('ra',3);
dd(redis::lrange('ra',0,6));
dd(redis::lindex('ra',0));
//获取健的值
linsert  在列中插入(这里面的3是只第一个)
redis::linsert('ra',"BEFORE",'3','555');
//在ra队列中在3之前插入555
redis::linsert('ra',"AFTER",'3','666');
//在ra队列中在3之后插入666
dd(redis::lrange('ra',0,-1));
lpop  返回并删除列表的第一个元素(队列或秒杀)
echo(redis::lpop('ra'));
dd(redis::lrange('ra',0,-1));
rpop  返回并删除列表的最后一个元素(队列或秒杀)
echo(redis::rpop('ra'));
//返回空则列表为空
dd(redis::lrange('ra',0,-1));
blpop brpop 消息队列
redis::lpush('a',54);
redis::brpop('a',0);
//第二个参数是时间 0是永不阻塞
dd(redis::lrange('a',0,-1));
如果列表存在,则将字符串值添加到列表头(左侧)
redis::lpush('la',5);
redis::lpushx('la',6);
//右侧是rpush
redis::lpush('la',8);
dd(redis::lrange('la',0,-1));
lrem  删除指定的键值
redis::lrem('ra',6,1);
//lrem('ra',6,1) 删除左到右6个1
redis::lrem('ra',-1,1);
//lrem('ra',-1,1) 删除右到左1个1
redis::lrem('ra',0,1);
//lrem('ra',0,1) 删除全部1
dd(redis::lrange('ra',0,-1));
lset 修改 使用新值在索引处设置列表。
redis::lset('la',0,'aaaa');
dd(redis::lrange('la',0,-1));
ltrim 修剪现有列表 类似与php substr
redis::ltrim('la',0,2);
dd(redis::lrange('la',0,-1));
llen 列表的长度
dd(redis::llen('la'));
从列表的尾部弹出一个值,并将其推到另一个列表的前面。同样返回这个值
redis::rPopLPush('la','ra');
//将la的尾部,推送到列表的前面
一般用户队列防止丢失
登录后复制

set类型(sadd scard sismember srem)集合内容不重复

sadd sCard sisMember
 添加/求和/是否在集合中
redis::sadd('sa',1);
redis::sadd('sa',2);
redis::sadd('sa',3);
dd(redis::sCard('sa'));
//判断集合是否存在
redis::sisMember('sa',1)
//存在是1,不存在是0
sdiff 判断两个集合之间的差集
redis::sadd('sb',2);
redis::sadd('sb',3);
redis::sadd('sb',4);
dd(redis::sdiff('sa','sb'));
//返回不在sb中,但在sa中的值
smembers 随机删除
redis::spop('sb');
dd(redis::smembers('sb'));
srem 指定删除
redis::srem('sb',2);
//在集合sb中删除2的值
dd(redis::smembers('sb'));
sinter 判断两个集合之间的交集
dd(redis::sinter('sa','sb'));
执行几个集合的交集,并保存为新的集合
redis::sInterStore('sc','sa','sb');
//sa和sb的交集,存于sc中
dd(redis::sMembers('sc'));
//输出一个集合
将指定成员从srcKey中的集合移至dstKey处的集合
redis::smove('sa','sb',1);
//把sa中的1移到sb中
dd(redis::smembers('sb'));
返回多个集合的联合
dd(redis::sUnion('sa','sb'));
返回联合,并存于一个集合中
redis::sUnionStore('sd','sa','sc');
//把sa和sc的联合返回与sd中
dd(redis::smembers('sd'));
登录后复制

hash(哈希)类型(hset, hget, hlen, hmget)

hset hget
hdel
存入/查询/删除
redis::hdel('a');
//必须先删除key为a的健,否则a本身被占用,无法给值
redis::hset('a','aaa','hello');
dd(redis::hget('a','aaa'));
hlen 
返回键a的长度
dd(redis::hlen('a'));
//a数组的下面有两个子集
hexists 
判断一个数组中是否包含某个键值
dd(redis::hexists('a','qwe'));
//1是ture 0是false
hmset hmget
批量存入全部的数组/批量获取
Redis::hmset('bbb', $user['1']);
dd(redis::hgetall('a'));
hsetnx 
给定hash默认值
本身a-aaa有值时候
redis::hsetnx('a','aaa','hello word');
dd(redis::hget('a','aaa'));
//hello
b-aaa无值的时候
redis::hSetNx('a','bbb','hello word');
dd(redis::hget('a','bbb'));
//hello word
hkeys 
类似array_keys()
dd(redis::hkeys('a'));
//数组的健和值相互替换
hvals 
类似与array_values()
dd(redis::hvals('a'));
//数组的健变成默认的0、1、2等
hstrlen 
相关字段的值的数量
dd(redis::hstrlen('a','bbb'));
//返回数组a下面健bbb的值的数量
登录后复制

sort set类型(有序集合)

zadd zrem 
添加/删除
redis::zAdd('key1', 1, 'val1');
redis::zAdd('key1', 0, 'val0');
redis::zAdd('key1', 5, 'val5');
redis::zrem('key1','val1');
dd(redis::zRange('key1', 0, -1));
zcard
计算总个数
登录后复制

通用命令

key 模糊搜索
redis::set('user1','my name is good man');
dd(redis::keys('user*'));
//返回的是数组,并且是user的key
dbsize 
计算key总的个数
redis::dbsize();
exists 
判断key是否存在
redis::exists('key');
//存在返回1,不存在返回0
del 
删除key
redis::del('key');
expire 
key在几秒以后过期
redis::expire('key',10);
//key在10秒以后过期.
persist 
去掉key的过期时间
redis::persist('key');
type 
key的类型
redis::type('key');
登录后复制

其他特性

publish 
 消息的发布和订阅
redis::publish('aaa', 'hello, world!aaa');
redis::subscribe(array('chan-1'),'f');
//回调函数
function f($redis, $chan, $msg) {
dd($msg);
}
geo 
地理位置的定位
geoadd 添加
redis::geoadd('ggg',112.531212,37.806616,'aaa',112.130619,37.396616,'bbb');
dd(redis::geopos('ggg','beijin'));
//ggg为key,aaa与bbb为标识
geodist 计算两地距离
dd(redis::geodist('ggg','aaa','bbb','km'));
//计算aaa与bbb的距离,km是单位
登录后复制

1.主从模式

在redis.conf中,添加slaveof ip 端口 可作为从redis,只能读取与同步
slaveof <masterip> <masterport>
登录后复制

2.redis的管道模式 大数据执行文件时候,利用这个传值要减少时间

redis::multi()
登录后复制

3.消息的发布和订阅

相关推荐:

PHP 常用函数集合


以上是redis在php下面的命令大全的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板