
Redis
对于redis学习的记录与体味
迪迪迦
你相信光吗?相信并追逐着
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis---地理模块Geo模块
redis在3.2版本以后增加了地理位置Geo模块,意味着我们可以使用redis来实现类似摩拜单车的“附近的Mobike”,微信的“附近的人”这样的功能。丢弃redis再介绍新模块之前,可以先思考下其他的方法实现这个问题,我们可以通过数据库保存位置信息,从而实现这项功能。地图元素采用经纬度的表示,经度范围[-180,180],纬度范围[-90,90],纬度正负以赤道为界限,北正南负,经度正负...原创 2019-12-15 16:22:43 · 532 阅读 · 0 评论 -
redis分布式锁的实现
场景引入当我们在分布式应用基础上进行开发时,经常会遇到并发问题。比如一个操作去修改用户的状态,第一步先要读取用户的状态,在内存里修改,改完然后再存回去。如果这两个操作同时进行,就会出现并发问题。因为‘读取’和‘保存状态’这两个操作不是原子操作。(原子操作是指不会被线程调度机制打断的操作。这种操作一旦开始,就会一直运行到结束。中间不会有任何的线程切换。)分布式锁分布式锁本质上要实现的目标就是在...原创 2019-12-08 13:46:19 · 132 阅读 · 0 评论 -
redis高级数据结构---布隆过滤器
从上一节学习了使用HyperLogLog数据结构来进行估数统计,他非常的有价值,在数据量庞大的情况下,低内存消耗的解决很多对精度要求不高的统计问题。但是加入我们想知道某一个值是不是已经在HyperLogLog结构里面了,此时HyperLogLog显得有些无能为力,因为HyperLogLog只提供了pfadd,pfcount以及pfmerge方法,并没有提供类似于pfcontain方法。描述一个...原创 2019-12-07 23:46:31 · 605 阅读 · 0 评论 -
redis高级数据结构---HyperLogLog
业务场景引入在讲诉HyperLogLog数据结构之前,先讲诉一个业务场景,我们需要记录某个网站的每一个网页的每天的UV数据,然后需要开发一个统计UV的功能模块。该如何实现?如果是PV数据的话,很简单,每一个页面配置一个单独的redis计数器,按照页面名称_日期作为key,value作为访问次数,每访问一次,就+1。但是如果是统计UV数据呢,UV需要去重,统计多少人访问过该页面,每个用户的每个...原创 2019-12-04 22:22:08 · 516 阅读 · 0 评论 -
redis高级数据结构---bitmap
场景引入*我们在正常开发环境中,有时候需要将bool型数据进行存取,比如用户一年里面签到了多少次,签到了设置1,没签到设置0,要记录365天,如果使用普通的key/value形式存储,每个用户就需要占据365键值对,当用户量上亿的时候,需要惊人的存储空间。更何况是一年的。为了解决这种问题,redis提出了bitmap的数据结构,这样每天用户签到只需要占据一个位,365天就是365位,46个字节...原创 2019-12-03 22:47:31 · 2377 阅读 · 0 评论 -
Redis中5种--基本--数据结构
Redis有5中基础数据结构,分别为:string(字符串),list(列表),hash(字典),set(集合)以及zset(有序集合)。这5种基本数据结构的熟练使用,是redis的相关知识中的最基础,最重要的部分。string(字符串):字符串是redis的最简单的数据结构,他的内部表示就是一个字符数组。redis所有的数据结构都以唯一的key字符串作为名称,然后通过这个唯一的key值来获取...原创 2019-12-01 18:13:31 · 359 阅读 · 0 评论