`
redis
  • 浏览: 27059 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

使用Redis的五个注意事项

阅读更多

下面内容来源于Quora上的一个提问,问题是使用Redis需要避免的五个问题。而回答中超出了五个问题的范畴,描述了五个使用Redis的注意事项。如果你在使用或者考虑使用Redis,可能你可以学习一下下面的一些建议,避免一下提到的问题。

1.使用key值前缀来作命名空间

虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。

另外,在使用前缀作为命名空间区隔不同key的时候,最好在程序中使用全局配置来实现,直接在代码里写前缀的做法要严格避免,这样可维护性实在太差了。

2.创建一个类似 ”registry” 的key用于标记key使用情况

为了更好的管理你的key值的使用,比如哪一类key值是属于哪个业务的,你通常会在内部wiki或者什么地方创建一个文档,通过查询这个文档,我们能够知道Redis中的key都是什么作用。

与之结合,一个推荐的做法是,在Redis里面保存一个registry值,这个值的名字可以类似于 __key_registry__ 这样的,这个key对应的value就是你文档的位置,这样我们在使用Redis的时候,就能通过直接查询这个值获取到当前Redis的使用情况了。

3.注意垃圾回收

Redis是一个提供持久化功能的内存数据库,如果你不指定上面值的过期时间,并且也不进行定期的清理工作,那么你的Redis内存占用会越来越大,当有一天它超过了系统可用内存,那么swap上场,离性能陡降的时间就不远了。所以在Redis中保存数据时,一定要预先考虑好数据的生命周期,这有很多方法可以实现。

比如你可以采用Redis自带的过期时间为你的数据设定过期时间。但是自动过期有一个问题,很有可能导致你还有大量内存可用时,就让key过期去释放内存,或者是内存已经不足了key还没有过期。

如果你想更精准的控制你的数据过期,你可以用一个ZSET来维护你的数据更新程度,你可以用时间戳作为score值,每次更新操作时更新一下score,这样你就得到了一个按更新时间排序序列串,你可以轻松地找到最老的数据,并且从最老的数据开始进行删除,一直删除到你的空间足够为止。

4.设计好你的Sharding机制

Redis目前并不支持Sharding,但是当你的数据量超过单机内存时,你不得不考虑Sharding的事(注意:Slave不是用来做Sharding操作的,只是数据的一个备份和读写分离而已)。

所以你可能需要考虑好数据量大了后的分片问题,比如你可以在只有一台机器的时候就在程序上设定一致性hash机制,虽然刚开始所有数据都hash到一台机器,但是当你机器越加越多的时候,你就只需要迁移少量的数据就能完成了。

5.不要有个锤子看哪都是钉子

当你使用Redis构建你的服务的时候,一定要记住,你只是找了一个合适的工具来实现你需要的功能。而不是说你在用Redis构建一个服务,这是很不同的,你把Redis当作你很多工具中的一个,只在合适使用的时候再使用它,在不合适的时候选择其它的方法。

来源:www.quora.com

12
11
分享到:
评论

相关推荐

    Java 中使用 redis

    6. **注意事项** - 考虑到缓存的一致性问题,例如分布式环境下的并发更新,可能需要使用更复杂的缓存策略,如Redis的事务或发布/订阅机制。 - 注意Redis的内存管理,避免缓存过多数据导致内存溢出。可以设置过期...

    windows版redis

    **六、注意事项** - Redis在Windows上的性能可能不如在Linux下,因为Windows的异步I/O机制与Linux有所不同。 - 定期备份数据是必要的,Redis不提供持久化数据的自动备份功能。 - 安全性:确保你的Redis服务只在可信...

    Linux 系统 安装redis redis-5.0.1.tar.gz 安装包

    9. **安全注意事项**: 默认情况下,Redis是不安全的,因为它允许任何远程连接。在生产环境中,你应该限制网络访问,比如通过设置防火墙规则,或配置`redis.conf`中的`bind`选项只允许本地连接。 10. **监控和维护...

    redis-5.0.5.zip windows版本

    5. **Windows特定注意事项** - Redis在Windows上可能遇到的兼容性和性能问题,如文件锁机制、线程池等,需要关注社区更新和解决方案。 - Windows服务的管理,除了`sc`命令,也可以通过`redis-server.exe --service...

    Rediscache插件(配置使用redis服务的插件)

    注意事项 - 确保Redis服务正在运行,并且可以在配置的主机和端口上访问。 - 考虑到性能和可用性,可能需要在生产环境中配置多个Redis实例以实现主从复制或哨兵模式。 - 数据安全:如果存储敏感数据,考虑加密或...

    redis2json:以JSON格式导出Redis数据

    注意事项和注意事项u()中的Unicode支持仅适用于Python2.x。 拉赞赏! 除了开发数据库以外,redis()。keys()真的很难使用! 对于生产,请使用重复扫描。 尽管通过并行化可以提高速度,但是您不能并行编写JSON。...

    redis64 for windows

    5. Redis在Windows上的使用注意事项: - Redis默认不支持Windows的服务管理,可以借助第三方工具将其注册为Windows服务。 - 考虑到Windows的内存管理机制,可能会影响Redis的性能,生产环境推荐使用Linux系统。 -...

    Redis 7.0.4 x64位 windows 系统 安装包 Redis7.0.4.zip

    使用步骤注意事项: 一、修改Redis的持久化数据库文件dump.rdb保存路径,绝对路径的方式:查找到行 dir D:\Redis7.0.4\bin\RedisData 如果Redis7.0.4.zip压缩包直接解压在D盘根目录下,不需要修改,如果放在其它盘...

    redis windows版本 redis windows版本

    开发中使用Redis的注意事项: 1. 内存管理:由于Redis所有数据都在内存中,因此需要合理规划内存大小,避免内存耗尽。 2. 性能优化:Windows版本可能不如Linux版本性能好,因为Redis在Linux上经过了更多的优化。考虑...

    使用 Redis 存储用户和他们的帖子.zip

    使用 Redis 构建一个简单的社交网站涉及到使用 Redis 的数据存储和缓存功能来存储用户信息、社交关系、帖子和评论等数据。以下是一个基本的示例,展示如何使用 Redis 存储用户和他们的帖子。 1. 安装和配置 Redis ...

    windows版本X64位Redis 5.0 安装包

    **注意事项:** - 在Windows环境中,Redis的性能可能不如Linux,因为Windows对某些系统调用的支持不如Linux优化。 - 保持Redis的更新,以获得最新的安全补丁和性能提升。 - 确保定期备份数据,防止数据丢失。 - ...

    redis6.2.5安装包Windows版

    六、注意事项 1. 安装时确保系统防火墙设置允许Redis端口通信。 2. 使用AOF持久化时,定期检查并重写AOF文件以避免过大。 3. 关注Redis内存使用情况,避免内存耗尽导致系统性能下降。 4. 对于生产环境,建议使用...

    windows版本redis5 附带快速启动脚本

    Redis是一种开源、高性能的键值对数据存储系统,常用于数据库、缓存和消息中间件。...通过了解Redis的基本概念、版本特性以及Windows下的使用注意事项,你可以更好地利用Redis来构建高效的应用架构。

    redis 3.0 win7 32位x86

    在Windows环境下,特别是32位操作系统上安装和使用Redis可能需要额外的注意事项。以下是对Redis 3.0在Win7 32位x86系统上的一些关键知识点的详细说明: **1. Redis版本3.0** Redis 3.0是Redis的一个重要版本,发布...

    redis6.0.8.zip

    五、在Windows环境中特别注意的事项 1. 文件路径:Windows系统中的路径使用反斜杠,配置文件中需要相应调整。 2. 端口冲突:确保Redis使用的端口(默认6379)没有被其他服务占用。 3. 安全性:由于Windows环境相对...

    redis 3.2.1 Windows 64

    **注意事项** 1. **防火墙设置**: 如果你的Redis需要对外提供服务,记得在Windows防火墙中打开6379端口,以便其他计算机可以连接。 2. **性能优化**: 虽然Redis在Windows上可以运行,但其原生环境是Linux,因此在...

    redis mac 7.2.3 arm 包

    7. **其他注意事项**: - 保持Redis的版本更新,及时修补可能的安全漏洞。 - 监控Redis的内存使用情况,避免因内存不足导致的问题。 - 定期备份数据,以防万一。 这个"redis mac 7.2.3 arm 包"为在M1 Mac上运行...

    redis-trib.rb redis集群搭建使用

    7. **集群操作注意事项**: - 集群中的键是基于槽(Slot)分配的,每个键对应一个槽,共有 16384 个槽。数据分布和迁移需要考虑到槽的分配。 - 集群不支持单个键的大范围操作(如 `KEYS`, `SCAN`),因为这可能...

Global site tag (gtag.js) - Google Analytics