Redis

分类下相关文章

如何限制 redis 的内存

https://redis.io/topics/lru-cache /etc/redis.conf maxmemory 100mb Failed to stop redis.service: The name org.freedesktop.PolicyKit1 was not provided by any .service files See system logs and 'systemctl status redis.service' for details. 如何查看单个进程的内存占用 redis 默认没有最大内存限制 By Default maxmemory has no limi ...

阅读全文...

IP 查询展示最近的 50 次查询, Laravel + Redis

目标是实现后台缓存最近的 50 次 IP 查询,展示到 IP 查询页面 中。 同时对最近的 IP 查询结果做缓存。 redis 定长 list 的使用,保存最近50次查询结果 参考 redis 官方文档 https://redis.io/commands/ltrim 逻辑是,每次 push 之后,执行 trim 操作,将多余的数据清理掉,保持定长。 127.0.0.1:6379> lpush recent_result 1 (integer) 1 127.0.0.1:6379> lpush recent_result 2 (integer) 2 127.0.0.1:6379> ...

阅读全文...

基于 redis 实现排名榜功能

MySQL 做排名功能很痛苦,因为我想不到简单的方法直接获取到某个用户,或是 Item 的排名,除非遍历。 而 Redis Sorted Set 恰好提供了便捷的方式。 如何更新分数 Sorted sets' scores can be updated at any time. Just calling ZADD against an element already included in the sorted set will update its score (and position) with O(log(N)) time complexity. 为排行榜插入数据 zadd 'te ...

阅读全文...

使用 Redis GeoHash 实现附近的XXX

功能概述 用户A打开手机,可以看到附件的商铺,或者附件的人。甚至告诉用户,你正在某个商铺中。 geohash 的疑问 geohash 能否实现直接告诉用户正在某个商铺中? geohash 代表了一个块状区域,而不是一个点,但是商铺一定是个正方形区域么? 数据库选型 目前暂定 redis。Redis 于 3.2.0 版本加入了 geohash 的支持,而目前的稳定版是 3.2.3. Redis geohash 如何找到关于 redis geohash 的资料?当然是 redis 官网。 GEOADD key 看这个文档基本就明白了。但是,那个示例想看懂的话,还是需要查一下意大利地理 redis& ...

阅读全文...

测试 redis replication & sentinel & python

测试目的 测试一下在 redis 主从配置下,单点故障对应用层 (Python) 的影响。 测试环境 系统: Ubuntu 14.10 redis 版本: 2.8.17 (redis-server -v) Python 版本: 2.7.8 Python Redis 版本: 2.10.3 (python -c "import redis; print redis.VERSION") Redis 官网给出的 Sentinel 配置示例,实际上是模拟了对两个不同 redis replication 的监控。 sentinel monitor mymaster 127.0.0 ...

阅读全文...

Redis Cluster / Redis Replication

redis replication 与 cluster 的区别 概念区分 redis replication 是主从复制 cluster 是对全量数据进行 sharding, 散列到不同的节点上 redis replication 经典的 master/slave 模式, 即主从复制 (replication), 参考 可以一 master 多 slave slave 可以再分出 slave,类似树形结构 master/slave 是非阻塞式同步,即同步时,master 仍然可以进行读写操作 同步时,在 slave 侧也是非阻塞式的,即仍然可以进行读操作,但是读取的是同步前的数据 sla ...

阅读全文...

redis

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. 通常 Redis 用来做什么 What Redis means actually? It means REmote DIctionary Server. 从 Redis 的名字可以看出,Redis 适合做数据 cache, ...

阅读全文...

使用 Redis 作为任务队列

需求 最近在写爬虫,用来爬取美区亚马逊的商品信息。为了方便地做水平扩展,需要用到任务队列。 需求其实很简单,就是将 MySQL 中未处理的商品 ID, 推送到任务队列中。再由 N 个 worker 拉取任务,进行处理。 对任务队列的要求是 定长。防止任务队列内存占用过多,毕竟使用的是最便宜的 AWS 1G 内存的主机。 操作原子性。即同一个任务不能被两个以上的 worker 拉取到。 简单易用 RQ (Redis Queue) 由于之前使用 Redis 作为队列的代码没有做封装,剥离出来比较费事。于是 Google 了一下是否有现成的实现,还真有! RQ RQ (Redis Queue) ...

阅读全文...