Toggle navigation
菜菜小站
菜菜小站
前端开发
前端开发
前端基础
bootstrap
JavaScript
后端开发
后端开发
php开发
laravel
数据库
编辑器
git
服务器
服务器
https
cos云存储
ubuntu
homestead
微信开发
微信开发
微信小程序
python开发
python开发
python基础
关于
laravel 操作redis
作者:
菜菜子
|
时间:2018-12-13 14:10:44 |
分类:
后端开发
,
laravel
|
访问: 2,122 次|
评论:
0 评论
参考:https://www.cnblogs.com/love-snow/articles/7778532.html ```php public function test(Request $request) { // $redis = app('redis.connection'); // //普通 set / get 操作;set 操作,如果键名存在,则会覆盖原有的值: // $redis->set('keyaa', 'vlaueuahcusbcuabc'); // if ($redis->exists('keyaa')) { // dd($redis->get('keyaa')); // }; //set 、get 多个key-value: // $mkv = array( // 'usr:0001' => 'First user', // 'usr:0002' => 'Second user', // 'usr:0003' => 'Third user' // ); // Redis::mset($mkv); // 存储多个 key 对应的 value // $retval = Redis::mget(array_keys($mkv)); //获取多个key对应的value // dd($retval); // 存储 key 为 library, 值为 predis 的记录, 有效时长为 10 秒(set expire) // Redis::setex('library', 10, 'predis'); //add操作,不会覆盖已有值:(SET if Not eXists) // $a = Redis::setnx('foo', 12); // 返回 true , 添加成功 // $b = Redis::setnx('foo', 34); // 返回 false, 添加失败,因为已经存在键名为 foo 的记录 // dd($a, $b); //set的变种,结果返回替换前的值: // 如果之前的foooo值已经存在,那么返回之前的foooo值并将foooo值更新为66; //如果foooo键不存在则返回nil // $a = Redis::getset('foooo', 66); // dd($a); //incrby/incr/decrby/decr 对值的递增和递减: // $foooo_add = Redis::incr('foooo');//返回67,对上面的foooo值递增 // $foooo_add2 = Redis::incrby('foooo', 2);//69,对上面的foooo值递增2,指定递增 // dd($foooo_add, $foooo_add2); //删除某 key 值: // $del = Redis::del('foooo');//删除成功返回true,删除失败返回false,(例如键不存在) // dd($del); //type检测(字符串返回 string,列表返回 list,set 表返回 set/zset,hash 表返回 hash:) // $type=Redis::type('usr:0002'); // dd($type); //append字符串追加 // $append=Redis::append('usr:0002','_nisandiansidnsadiansdiasndaid'); // dd(Redis::get('usr:0002')); //keys 模糊查找功能,支持 * 号以及 ? 号 // Redis::set('foo12', 'abcd'); // Redis::set('foo221', 'efgh'); // Redis::set('fo12o2', 'efgh'); // $a = Redis::keys('foo*'); // $b = Redis::keys('fo??o?');//一个?号匹配一个字符 // dd($a, $b); //随机redis key // dd(Redis::randomkey()); //rename/renamenx方法对key进行改名,所不同的是renamenx不允许改成已存在的key: // $a = Redis::rename('foo221', 'foo222aaaa'); // $a = Redis::renamenx('foo222aaaa', 'fo12o2sss');//改为已存在key会返回false // //注意对一个不存在的key进行更名会直接报错//ERR no such key // dd($a);//Status {#329 ▼ -payload: "OK"} //expire 设置 key-value 的时效性 //ttl 获取剩余有效期 //persist 重新设置为永久存储 // Redis::setex('fo12o2sss', 10, 'asniandindianisdnaindiasnd'); // Redis::set('fo12o2sss', 'asniandindianisdnaindiasnd'); // $a = Redis::expire('fo12o2sss', 10);//秒,成功返回true,否则返回false(例如key不存在) // $b = Redis::ttl('fo12o2sss');//-1为无限制 // dd($b); //dbsize 返回redis当前数据库的记录总数: // $count = Redis::dbsize(); // dd($count); //队列操作 // Redis::lpush('fooList', 'aasadansdaindias'); // Redis::lpush('fooList', 'asdnaisncinsicnaicnaica;a'); // Redis::lpush('fooList', 'asdandaif;a'); // $count = Redis::llen('fooList');//list长度 // // //lindex 返回指定顺序位置的 list 元素: // $index = Redis::lindex('fooList', 1); // //lset 修改队列中指定位置的value: //// $set_index = Redis::lset('fooList', 1, '123'); // 修改位置 1 的元素, 返回 true,如果超出索引范围,报错 // //lpop/rpop 类似栈结构地弹出(并删除)最左或最右的一个元素: // $lpop = Redis::lpop('fooList'); // $rpop = Redis::rpop('fooList'); // //lrange 返回队列中一个区间的元素: // $lrange1 = (Redis::lrange('fooList', 0, 1));// 返回数组包含第 0 个至第 1 个, 共2个元素 // $lrange_all = (Redis::lrange('fooList', 0, -1));////返回第0个至倒数第一个, 相当于返回所有元素 // dd($count, $lrange1, $lrange_all, $index, //// $set_index, // $lpop, $rpop); // $a = Redis::ltrim('fooList', 0, 1); // 保留左边起第 0 个至第 1 个元素 // dd($a, Redis::lrange('fooList', 0, -1));//返回Status {#329 ▼-payload: "OK"} //rpoplpush 从一个队列中 pop 出元素并 push 到另一个队列: // Redis::rpush('list1', 'ab0'); // Redis::rpush('list1', 'ab1'); // Redis::rpush('list2', 'ab2'); // Redis::rpush('list2', 'ab3'); // Redis::rpoplpush('list1', 'list2'); // 结果list1 =>array('ab0'), list2 =>array('ab1','ab2','ab3') // Redis::rpoplpush('list2', 'list2'); // 也适用于同一个队列, 把最后一个元素移到头部 list2 =>array('ab3','ab1','ab2') // dd(Redis::lrange('list1', 0, -1), Redis::lrange('list2', 0, -1)); // Redis::linsert('list2', 'before', 'ab1', '123'); //表示在第一个元素 'ab1' 之前插入 '123' // dd(Redis::lrange('list2', 0, -1)); //集合操作 //sadd增加set集合元素, 返回true, 重复返回false Redis::sadd('set1', 'ab'); Redis::sadd('set1', 'cd'); Redis::sadd('set1', 'ef'); //srem 移除指定元素 // dd(Redis::srem('set1', 'ewew'));//失败返回false,(指定元素不存在返回false) // dd(Redis::srem('set1', 'ef'));//成功返回true //弹出首元素 // dd(Redis::spop('set1')); // 返回 'ef' //smembers 返回当前set集合的所有元素 //smove 移动当前set集合的指定元素到另一个set集合: // Redis::sadd('set2', '123'); // $a = Redis::smove('set1', 'set2', 'asasab');//// 移动'set1'中的'asasab'到'set2', 返回true or false;此时 'set1'集合不存在 'asasab' 这个值,返回false //scard 返回当前set表元素个数: // dd(Redis::scard('set1')); //sismember 判断元素是否属于当前set集合: // $sismember=Redis::sismember('set2', '123'); // 返回 true or false // dd($sismember); //smembers返回当前set集合的所有元素: // dd(Redis::smembers('set1')); //sinter/sunion/sdiff 返回两个表中元素的交集/并集/补集 // $sinter = Redis::sinter('set2', 'set1'); //返回array('ab') // $sunion = Redis::sunion('set2', 'set1'); //返回array('ab') // $sdiff = Redis::sdiff('set2', 'set1'); //返回array('ab') // dd($sinter, $sunion, $sdiff); //随机数 // $srandmember = Redis::srandmember('set1'); // dd($srandmember); //队列和集合的区别: //队列可以重复,集合不能重复 //Hash表操作 //hset/hget 存取hash表的数据:(hsetnx 增加一个元素,但不能重复,返回true 或者false) Redis::hset('hash1', 'key_1', 'value_1'); //将key为'key_1' value为'value_1'的元素存入hash1表 Redis::hset('hash1', 'key_2', 'value_2'); // dd(Redis::hget('hash1','key_1'));//取出表'hash1'中的key 'key_1'的值,返回'value_1';不存在则返回null,存在返回值 //hexists 返回hash表中的指定key是否存在: // dd(Redis::hexists('hash1','key_1'));////true or false //删除key // Redis::hdel('hash1', 'key_1'); //true or false //hlen 返回hash表元素个数: // dd(Redis::hlen('hash1')); //hmset/hmget 存取多个元素到hash表 // Redis::hmset('hash1', ['key3' => 'v3', 'key4' => 'v4']); // dd(Redis::hmget('hash1', ['key3', 'key4'])); //hkeys 返回hash表中的所有key: // dd(Redis::hkeys('hash1')); // 返回array('key1', 'key2', 'key3', 'key4', 'key5') //hvals 返回hash表中的所有value: // dd(Redis::hvals('hash1')); //hgetall 返回整个hash表元素: // dd(Redis::hgetall('hash1')); // 返回 array('key1'=>'v1','key2'=>'v2','key3'=>'v3','key4'=>'v4','key5'=>13) dd(Redis::info()); } ```
标签:
laravel5
,
redis
还不快抢沙发
添加新评论
昵称(必填)
邮箱(必填)
网站(选填)
内容(必填)
提交评论
最新文章
ubuntu自动化安装php文件
laravel 操作redis
laravel-admin静态资源加速
laravel-admin1.6版本表单tag bug修复方法
laravel根据另外一列的值赋予grid某一列editable()
laravel-admin数据来源非数据表信息
laravel判定多对多关系是否存在
最新回复
rcbojapcrb: 真棒!
ytwwjjjjoc: 真棒!
森木志: 对的 用的就是这个版本 我看plugin.php的...
菜菜子: 插件版本呢?应该用https://github.com...
森木志: 忘记说了,typecho版本是1.2.1,php版本是...
森木志: 遇到灵异事件了,设置是没问题的,按道理来说上传成功后的...
局外人: 下载失败了,大佬帮忙看看是什么原因呢?
青丝: 7355763
菜菜子: 我好像沒有做這個提示,方便加微信吧,我看看什麼問題
青丝: 对的,提示需要8.0PHP
标签
前端框架
bootstrap
laravel5
laravel-admin
laravel
微信小程序
gd库
git
wamp配置
https
表单
cos小工具
微信支付
ajax
cos
cos插件
vue
nginx
homestead
linux
ubuntu
swoole
typecho
编辑器
破解
数组
jwt
sql语言
腾讯云
邮件发送
websocket
队列
微信公众号
分页
日志
elasticsearch
wnmp
vagrant
无限极分类
分销
集合
supervisor
部署
grid
redis
python
标签
刷新
加密处理
验证码
悬浮框
权限控制
markdown
shell
mysql
测试
ui
任务调度
定时任务
deployer
gogs
反向代理
ftp
归档
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2017年09月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
友情链接
空
//