< 返回文章列表
【服务器相关】Redis如何在项目中合理使用经验分享
发表时间:2025-09-24 16:09:00 小编:主机乐-Yutio
概述
Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,本文将介绍Redis如何在项目中合理使用。
背景
- Redis 是一个开源的内存数据结构存储系统。
- 可以作为数据库、缓存和消息中间件使用。
- 支持多种类型的数据结构。
- Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence)。
- 通过 Redis 哨兵(Sentinel)和 Redis 集群(Cluster)的自动分区,提供高可用性(high availability)。
基本数据类型
字符串(strings)
1、string 的过期时间在重新设置值之后会被清除
应用场景string
不管是简单和复杂的数据都可以直接转为string存储。
key: active:spring2019:title value:”2019春节活动” 操作:set
商品信息,省市区信息,活动配置等一系列不常变化的冷数据缓存
非常热门数据的缓存,游戏排行,后台每秒更新一次数据
2019春节活动参加人数
key: active:spring2019:total value:3045 操作:incr
一个人一天只能进行一次签到
key:active:checkin:userId:10000:day:20190101 value:签到时间戳 操作:expire
下面的代码不严谨,nx 可以放并发
注意事项- 每个 key 都应该有合理的失效时间
- string的过期时间在重新设值后会被覆盖
- string类型的 set 操作可以覆盖类型
- 合理使用相应的数据结构
不要用list存大量数据并检索
判断用户有没有参加应该用set,不应该每个用户一个key
- 环境数据隔离
- 业务数据隔离 用户 redis 业务 redis 活动 redis 应该做区分,活动的 redis 在活动结束后可以自由清理
- 合理使用管道,lua 脚本和 redis 事务,提高性能,尤其是在脚本中使用 redis 的时候
- 在有大量 key 的 Reids 线上系统,要在主库禁用 keys * 操作,防止卡死
总结
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!