redis

基于redis的geo类型实现“附近的xx”功能

Backend

这里假设要实现的是“附近的地铁站”功能,key为list,member为地铁站id 首先,你需要在redis里维护一个geo的列表(本质上是sorted set),当每个地铁站的经纬度有更新时,就使用 #地铁站id=1 #顺便提一下,相同key,member,不同经纬度,GEOADD会自动更新的 127.0.0.1:6379> GEOADD list CH 13.361389 38.115556 "1" 列表接口的实现 客户端会传一个经纬度,页码,每页条数,关键词(搜索后排序先不考虑) 生成模拟数据 $redis = new Redis(); $redis->connect("docker-...

Redis 应用场景

php

首先,总结一下这些应用场景,它们不是独立存在的,很多都还是要依赖mysql;甚至项目初期这些都不是第一选择,很多场景mysql也能做,并且更简单 生成唯一的随机数 很多网站的详情页链接都有一个随机数,比如http://www.cuiwei.net/p/1937090613、https://www.zhihu.com/question/48759965、https://segmentfault.com/a/1190000041091095等 通常的做法是:一个code(id,article_id,code,used_time)表,一个article(id,code, ...)表,在添加文章时从c...

Redis 实现限流

php

下面介绍两种方法 zset function uuid(){ $str = "123456790abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $uuid = ""; for ($i = 0; $i < 10; $i++) { $uuid .= $str[mt_rand(0, strlen($str) - 1)]; } return $uuid; } $time = time(); $key='limit:100'; $val = uuid(); $redis = new ...

Redis GEO地理位置

php

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。 基于此可以实现附近的人,附近的店铺等功能 $redis = new Redis(); $redis->connect("docker-redis", 6379); //$r=$redis->geoadd('citys', 114.09981,33.585519, 'taiwei'); //$r=$redis->geoadd('citys', 114.070524,33.59067, 'dongwaitan'); //$r=$redis->geoadd('citys', 113.97...

Redis 中的订阅消息转发到 WebSocket 客户端

php

WebSocketTest.php <?php class WebSocketTest { public \Swoole\WebSocket\Server $server; public function __construct() { $this->server = new Swoole\WebSocket\Server("0.0.0.0", 9502); $this->server->on('open', function (Swoole\WebSocket\Server $server, $request) { e...

docker搭建Redis集群-主从复制

Backend

一主二从 代码目录 │ docker-compose.yml ├─apache │ Dockerfile │ index.php ├─follower │ Dockerfile │ run.sh └─leader Dockerfile docker-compose.yml # docker-compose.yml # tell docker what version of the docker-compose.yml we're using version: '3' # define the network networks: web-network: # start the s...

php扩展的编译安装

Backend

这里以redis为例 工具 yum install autoconf 下载及编译 wget https://pecl.php.net/get/redis-5.3.4.tgz --no-check-certificate tar -xvzf redis-5.3.4.tgz cd redis-5.3.4 phpize ./configure --with-php-config=/usr/bin/php-config make && make install 添加到php.ini vi php.ini 959 extension=redis 重载php-fpm,使生效 servic...