redis
Erekys
左手代码右手诗,不想当诗人的码农不是好面匠!
展开
-
基于swoole、redis集合做一个消息订阅
利用swoole开启常驻进程,需要几个按自己的情况来定,swoole进程数最好是和服务器cpu核数相等上篇和这里我用的都是woker进程没有用task_workerredis 有序集合score可以按时间戳来吧需要发送的数据存储起来利用swoole启动的常驻进程不断的去探测,可以设定一段时间去按照score时间排序去把这个时间段的有序集合的数据取出来消费下面上代码:swoole启动代码functi...原创 2018-03-14 17:39:10 · 1930 阅读 · 0 评论 -
基于swoole、redis做一个消息通知功能
利用swoole开启常驻进程,需要几个按自己的情况来定,swoole进程数最好是和服务器cpu核数相等利用swoole启动的常驻进程不断的去探测redis队列里面的值,可以按键值来做一个快中慢这样的权重处理,需要急需处理,数据量大的可以用多几个进程,一般的可以分配不同的进程数来执行。下面上代码:swoole启动代码function run(){ try { $swoole...原创 2018-03-14 17:28:21 · 6553 阅读 · 0 评论 -
Redis数据类型——字符串
redis字符串类型他能存储任何类型的字符串,包括二进制,json化对象、邮箱、图片等等的,不过存储的最大最大容量是512MB。命令常用的比如set 设置一个key和value,原本的key有值的时候会覆盖原先的值,重新赋值新的值。成功的时候会返回一个ok。取值的时候就是get key这样子,有key的时候会取出其值,不存在的时候会返回一个false其他的count 是否存在的一些命令手册有,这里...原创 2018-03-31 13:07:08 · 246 阅读 · 0 评论 -
Redis数据类型——散列类型
我们用的redis的散列其实就是一个hash散列:储存多个域值对。一个散列由多个域值对组成,散列的域和值都是以字符串类型来存储的。同一个散列里面域是不能相同的,而域的值则没有这一要求,换句话说,不同域的值可以是重复的。通过命令,用户可以对散列执行设置域值对、获取域的值、检查域是否存在等操作,也可以让 Redis 返回散列包含的所有域、所有值或者所有域值对。这是网上找的一个字符串类型与散列类型命令的...原创 2018-03-31 13:20:48 · 257 阅读 · 0 评论 -
Redis数据类型——列表(链表与数组的差别对比)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。Redis的列表其实就是一个双向链表,他对于操作列表里面的数据就是0(1)的时间复杂度,到这里我们说一下链表和数组对于内存中的优劣势其实在c或者c++中每一个变量的申明都会去内存申请空间,然而我...原创 2018-03-31 13:37:37 · 1362 阅读 · 0 评论 -
redis缓存穿透之setnx使用场景
随着业务的增长,请求并发的增大。很多公司在业务场景中会增加缓存策略,而缓存用的最多的也就是redis了。 今天我们来说一下缓存穿透,我们缓存一般是有时效性的,一定的生命周期过去之后就会消失,一般的系统不会设置永久性的存储,这时候就会遇到一个问题,要么就是主动刷新缓存,要么就是程序被动刷新缓存。 事实证明很多程序当中很少主动刷新因为你要去写脚本,定时去刷新数据,这样的话代价比较大...原创 2018-06-30 11:13:34 · 2789 阅读 · 0 评论