
redis实际应用
wu是小任
这个作者很懒,什么都没留下…
展开
-
redis 实现分布式锁
使用redis实现分布式锁一、SETNX语法:SETNX key valueredis中提供了一个setNx(set if not exist)命令,该命令仅当key不存在时才可以设置成功,使用该命令设值可以保障众多客户端中只有一个客户端可以成功设置值(即:获取到锁...原创 2021-04-01 19:24:21 · 145 阅读 · 0 评论 -
redis 布隆过滤器
作用用于判断某个元素是否存在于指定集合中。在确保高性能的同时,布隆过滤器能够将存储空间降低 90% 以上,不过和 HyperLogLog 一样的问题是,它也存在一定误差,不过对于海量数据而言,这个误差是可以接收的(它判断不存在的元素,一定不存在,但是它判断存在的元素,有可能不存在。)常用命令bf.add 添加元素到集合bf.exists 检查元素是否存在bf.madd 批量添加元素到集合bf.mexists 检查多个元素是否存在代码实践127.0.0.1:6379> bf.ma原创 2021-04-01 14:53:09 · 86 阅读 · 0 评论 -
redis发布与订阅
PUBLISH127.0.0.1:6379> publish first message(integer) 1127.0.0.1:6379> publish first message_2(integer) 1127.0.0.1:6379>SUBSCRIBE127.0.0.1:6379> subscribe firstReading messages... (press Ctrl-C to quit)1) "subscribe"2) "first"3) (in原创 2021-04-01 10:27:07 · 74 阅读 · 0 评论 -
redis实现共同好友功能
SINTER语法:SINTER key [key …]返回一个集合的全部成员,该集合是所有给定集合的交集不存在的 key 被视为空集。当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)代码实践127.0.0.1:6379> sadd peter a b c(integer) 3127.0.0.1:6379> smembers peter1) "c"2) "a"3) "b"127.0.0.1:6379> smembers peter1) "c"2)原创 2021-03-31 15:51:04 · 488 阅读 · 0 评论 -
redis 实现uv统计
一、通过 SET 结构实现SADD语法:SADD key member [member …]将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略假如 key 不存在,则创建一个只包含 member 元素作成员的集合当 key 不是集合类型时,返回一个错误SCARD语法:SCARD key返回集合 key 的基数(集合中元素的数量)代码实践127.0.0.1:6379> sadd 'index.uv.20210331' 'us原创 2021-03-31 15:30:20 · 322 阅读 · 0 评论 -
redis中使用zincrby和zrevrange、zrange实现排行榜功能
ZINCRBY语法:ZINCRBY key increment member为有序集 key 的成员 member 的 score 值加上增量 incrementZREVRANGE语法:ZREVRANGE key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员。成员按 score 值递减(从大到小)的次序排列ZRANGE语法:ZRANGE key start stop [WITHSCORES]返回有序集 key 中,指定区间内的成员原创 2021-03-31 14:51:36 · 704 阅读 · 0 评论 -
redis实现一个有原子性复位操作的计数器
需求举例来说,每次当某个事件发生时,进程可能对一个名为 mycount 的 key 调用 INCR 操作,通常我们还要在一个原子时间内同时完成获得计数器的值和将计数器值复位为 0 两个操作实现127.0.0.1:6379> INCR mycount(integer) 1127.0.0.1:6379> INCR mycount(integer) 2127.0.0.1:6379> INCR mycount(integer) 3127.0.0.1:6379> INCR原创 2021-03-31 14:06:24 · 302 阅读 · 0 评论