redis |

使用redis实现在线人数统计

实现方案用户登录的时候往redis里面存储一个值(对应的在线人数增1),这个值的key值是和这个用户的唯一识别码(例如userId或者username)有联系,在存储的同时,设置其对应的生命周期,比如30分钟,当用户在网站上点击相关操作时(可以结合AOP去实现),重新刷新这个值为30分钟,如果用户什么都不干,30分钟后,redis里面存储的值消失了(对应的在线人数减1),另外用户注销时,直接删除这个用户对应的数据。而我们在获取在线人数的时候不需要对其进行加减操作,我们只需统计 ...

Kevin Lim
redis |

如何使用redis缓存实现分页

解决思路用hset和hget进行每个对象的存取,用zadd和zrange存取条件索引(可以通过控制后面offset值进行分页查询),然后根据zrange获取到的key值再去用hget循环遍历获取对象add到返回的集合当中。 简单实验但是为了实现根据条件查询,需要在存取对象前对某个条件做索引,下面举个例子。 现在有4个用户,分别是: zhangsan,lisi,wangwu,zhaoliu。其中zhangsan和wangwu是货主,userType值为0,其余2个是司机,u ...

Kevin Lim
redis |

redis下sentinel实验

很早以前在2台阿里云服务器上把redis主备给搭好了,但是一直纠结的是阿里云好像不支持vip,没办法做主从切换,万一主服务器崩了就完蛋咯.先不考虑服务器端环境,学习一下redis自身关于HA(hign available)的实现–sentinel.下面开始做实验看看它的实际效果. 一.配置master和slave(为了方便,所有操作均在一台电脑上,通过改变端口号去模拟多台服务器)1.用mkdir testRedis指令建一个测试目录 2.将redis-2.8.19拷贝到 ...

Kevin Lim
redis |

redis用scan进行数据的迭代遍历

在redis中是支持使用通配符的使用,例如‘?’或是‘’所以我们在获取redis里面的某个db里面的所有数据可以用 `keys `这样的指令来实现。但是存在一个问题就是这样做的话,在数据量很大的情况下效率是很不理想的。redis的作者在一篇博文中也提到这一点。 Your collection is very small? Fine, use SMEMBERS and you get Redis-alike performances anyway. Your collecti ...

Kevin Lim