-
Redis Learn-40-Invalidated object not currently part of this pool & spring redisTemplate
背景
以前针对 redis 中的大 Map,采用了 scan+delete,最后删除的方式。
避免单个操作时间太长造成阻塞。
后来 redis 采用 redisTemplate 来操作,发现会报如下错误:
redis 中大 key 的删除策略
异常信息
Caused by: redis.clients.jedis.exceptions.JedisException: Co...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-39-Redis 常见面试题
Redis有哪些数据结构?
字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。
如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。
如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。
使用过Redis分布式锁么...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-38-Redis 导出需要的数据
业务背景
需要将 redis 特定的 keys 统计下次数。
并且最好能把 key/value 都统计出来。
如何统计出现的次数
首先,不能使用 keys,会直接导致阻塞。
这里推荐使用 scan
./redis-cli -h xxx -p xxx -a xxx --scan --pattern 'xxx_*' | wc -l
这里输入你对应的地址,和正则表达式,可以匹配...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-37-Redis 数据对比实现方案
业务背景
阿里云的 DTS 提供了 redis 的数据传输,但是没有提供对应的数据对比功能。
Redis 内存占用大小查看 这个介绍了如何查看 keys 的数量。
对比方案1
直接查看总数,然后随机抽样对比。
这个缺点很明显,无法保证数据的准确性。
对比方案2
通过 scan 获取所有的 keys。(注意,不要通过 keys 这个命令,会被直接开除的 ==!)
...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-36-Redis 内存占用大小查看
登陆命令
登录
登录到 linux 机器,使用 redis-cli 登录
./redis-cli -h 127.0.0.1 -p 8848
这样登录
验证
auth XXXX
输入密码验证
查看内存
$ info
查看对应的地方:
# Memory
used_memory:13490096 //数据占用了多少内存(字节)
used_memory_hu...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-35-Redis 报错汇总
授权失败
常见方式
./redis-cli -h xxx.xxx.xxx.xxx -p 6379 -a password
有时候会发现授权失败
正确方式
可以尝试分解为两步:
登录 redis
./redis-cli -h xxx.xxx.xxx.xxx -p 6379
授权
auth password
集群查询失败
集群环境报错
hgetall...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-34-GEO
GEO
Redis3.2版本提供了GEO(地理信息定位)功能,支持存储地理位置信息用来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能,对于需要实现这些功能的开发者来说是一大福音。
GEO功能是Redis的另一位作者Matt Stancliff借鉴NoSQL数据库Ardb实现的,Ardb的作者来自中国,它提供了优秀的GEO功能。
拓展阅读
ardb
参考资料
《Redis 开...
2018-12-12 03:35:23 |
Redis
-
Redis Learn-33-HyperLogLog
Redis HyperLogLog
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2...
2018-12-12 03:35:23 |
Redis