查询附近的人或者是附近的商家是一个实用且常用的功能,比如微信中“附近的人”或是美团外卖中“附近商家”等,如下图所示:
那它是如何实现的呢?我们本文就一起来看。
2025年05月24日
查询附近的人或者是附近的商家是一个实用且常用的功能,比如微信中“附近的人”或是美团外卖中“附近商家”等,如下图所示:
那它是如何实现的呢?我们本文就一起来看。
2025年05月24日
一、package
package时最基本的分发单位和工程管理中依赖关系的体现;
每个Go语言源代码文件开都都有一个package的声明,表示源码文件所属于代码包;
2025年05月24日
Geospatial Indexes 是 Redis 提供的一种数据结构,用于存储和查询地理位置信息。它可以将地理位置的经度和纬度编码为二维平面上的点,并支持根据距离或矩形区域查询附近的地理位置点,这使得它在很多场景下被广泛应用,比如 LBS(Location Based Service)、智能推荐、出行规划等。
Redis 中 Geospatial Indexes 是通过有序集合实现的,其内部使用 zset 数据类型来存储地理位置点的经纬度和成员信息。其中,经纬度以浮点数表示,成员信息则可以是用户 ID、商铺名称等。
2025年05月24日
在使用redis scan命令的时候发现这个count经常和实际的数据量对不上,count 3,4,5,出来的都是5个,只有部分是准的。这就有点神奇了。我们先看一下这个命令是干什么的,再看一下能不能从官网或者源码中寻找答案,为啥会出现这种现象。
2025年05月24日
Redis中每条命令都是原子性的,即执行结果要么全部成功要么全部失败。在某些业务场景下,需要执行多条命令,并且要保证多条命令的原子性。这时,如果命令逐条执行,显然是不能保证原子性的。有同学可能会想到使用Redis的事务功能,事务是可以保证原子性,但是受限于命令的功能,有些场景下并不能实现想要的功能。
2025年05月24日
redis EVAL命令可以执行lua脚本,redis保证脚本执行的原子性,脚本由嵌入式执行引擎(Lua 5.1解释器)执行。
1,语法:
EVAL script numkeys [key [key ...]] [arg [arg ...]]
第一个参数 script 是脚本的源代码
第二个参数 numkeys 是输入键名参数的数量
后面的就是 key 和 参数。
例如:
> EVAL "return 'Hello, scripting!'" 0
2025年05月24日
最近开始学习redis,一是出于兴趣,觉得redis作为一款高性能数据库,想看看它和MySQL之间的区别在哪儿,二是掌握一门新技术,为以后转服务器端做知识储备。由于redis的源码是用C语言写的,这倒方便我直接从源码的角度去学习redis,当然学习一门新技术更好的办法就是搭建环境去用它,所以我学习的方法就是两条,一是阅读源码,透过源码看业务逻辑的实现最为直接,二是上手去使用,最为直观的学习方法。
今天第一节先把redis的环境搭建起来:
第一步,先从网上下载redis的安装包,因为这里是搭建windows下的环境,所以要下windows的安装包,给大家附上一个链接:redis安装包