Redis
URL
date
Dec 23, 2021
slug
redis
status
Published
tags
Redis
summary
Redis
type
Post
redis规范
键值设计
【建议】: 可读性和可管理性
以业务名(或数据库名)为前缀(防止 key 冲突),用冒号分隔,比如业务名:表名:id
key 名设计
【建议】:简洁性
保证语义的前提下,控制 key 的长度,当 key 较多时,内存占用也不容忽视,例如:
【强制】:不要包含特殊字符
反例:包含空格、换行、单双引号以及其他转义字符
value 设计
【强制】:拒绝bigkey(防止网卡流量、慢查询)
string 类型控制在 10KB 以内,hash、list、set、zset 元素个数不要超过 5000。
反例:一个包含 200 万个元素的 list。
非字符串的 bigkey,不要使用 del 删除,使用 hscan、sscan、zscan 方式渐进式删除,同时要注意防止 bigkey 过期时间自动删除问题(例如一个 200 万的 zset 设置 1 小时过期,会触发 del 操作,造成阻塞,而且该操作不会不出现在慢查询中(latency 可查)),查找方法和删除方法
【推荐】:选择适合的数据类型。
使用Geo
本章代码位置
https://github.com/remember-5/spring-boot-demo/tree/master/demo-redis
新建一个项目,加入
spring-data-redis
模块修改配置文件
序列化redisTemplate,创建
RedisConfig
创建
GeoHashData
添加service层,创建
GeoHashService
首先测试添加数据