`
linmomo02
  • 浏览: 179017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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当作你很多工具中的一个,只在合适使用的时候再使用它,在不合适的时候选择其它的方法。

 

 

英文连接:http://www.quora.com/Redis/What-are-5-mistakes-to-avoid-when-using-Redis

原文链接:http://blog.nosqlfan.com/html/3705.html

分享到:
评论

相关推荐

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

    如果Redis7.0.4.zip压缩包直接解压在D盘根目录下,不需要修改,如果放在其它盘,如E盘,请修改绝对路径的D为E,如dir E:\Redis7.0.4\bin\RedisData 二、修改Redis永久密码,打开redis.conf文件,查找requirepass,...

    redis for Windows 7.0.7 使用cygwin编译

    redis for Windows 7.0.7 使用cygwin编译的64位 redis微软官方的版本太旧了,此为我自己使用Cygwin编译的最新版 注意:这不是官方提供的版本

    redis2json:以JSON格式导出Redis数据

    例如: ./redis_to_json.py | gzip > redis_backup.json.gz这对于您正在使用但又不想丢失数据的应用程序也很不错,因为Redis RDB文件并不总是那么方便。注意事项和注意事项u()中的Unicode支持仅适用于Python2.x。...

    Linux下安装配置redis详细教程,并配置哨兵模式,redis中文详解

    注意:对只使用redis服务,只需要在主Redis里面配置requirepass,在从Redis里面配置masterauth,密码保持一致,密码尽可能复杂,以免被攻击破解。 注意:对只使用redis服务,如果从Redis也有必要加入访问验证,也...

    windows环境下配置redis6集群

    注意:由于本人配置redis.conf中的路径使用的是绝对路径,当前redis安装目录的父目录为D:\InstallDir,可以在每个配置文件中修改为自己指定的路径位置 redis638-.conf配置文件内容 #redis服务器端口号 port 6380 #...

    redis下载(redis手册+redis.conf文件+windows服务+php_redis扩展+安装方法,绝对好用)

    这个是绝对超值的,本人收集了在windows下架设redis数据库的所需软件,以及在实践中应该注意的...这是本人经过长时间收集整理出来的,里面所有软件都带有安装方法,以及安装使用过程中注意的事项,有需要的就下载吧。

    springboot根据配置实现单机与集群redis的切换

    通过配置文件实现连接单机redis或集群redis demo,实现开发时使用单机redis,线上使用集群redis

    redis-shake 3.0.0最新版

    阿里云Redis&MongoDB团队开源的用于redis数据同步的工具 注意:v3 版本仍处于测试阶段,有些功能不支持或不兼容 v2 版本。如果您在使用 v3 版本时遇到问题,请返回 v2 版本

    Redis Desktop Manager 0.9.8

    RedisDesktopManager 0.9.8 版本已发布,Redis Desktop Manager(RedisDesktopManager, RDM)是一个快速、简单、支持跨...需要注意的是,官方不面向非订阅用户提供二进制安装包,因此普通用户需要自行使用源码进行编译。

    Window搭建Redis

    redis.conf配置是window下使用启动redis所需要的文件,因为我本机是32bit的.我在官方也没找到然后redis64 把下面的文件拷贝过来,虽然上面是写着64.拷贝过来也可以启动。当然了,你不能直接用redis-windows-...

    redis-trib.rb(redis 5.0以下的版本使用)

    redis-trib.rb是redis 5.0以下的版本创建集群所使用的脚本,注意,redis5.0版本已不需要再使用此脚本,而是使用自带的redis-cli创建

    redis命令集合,redis命令详解

    redis命令集合,redis命令详解 适合全体类型的命令 EXISTS key 判断一个键是否存在;存在返回 1;否则返回0; DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4 TYPE key 返回某个key元素的数据类型 ( none:...

    redis windows X86 2.6.12最新稳定版

    注意:启动redis服务器端后,不要关闭DOS窗口,否则服务器端会停止运行, 要重新启动一个新DOS窗口来启动客户端。 如果是服务器上运行,可以使用以下方法: 方法一:(显示DOS窗口) ------------------------...

    phpredis-2.1.3.zip + Redis客户端介绍+ php调用Redis教程 +Redis相关方法说明

    缺乏扩展的特性还是有些影响 的 需要维护过程中注意进行升级更新 调用Redis的相关方法 Redis:: construct构造函数$redis new Redis ; 1 基本相关操作 connect open 链接redis服务 参数host: string 服务地址 ...

    centos6下redis开机自启动脚本配置

    本文档适用于配置 centos6 环境下 redis开机自启动脚本配置,可以使用service redis stop|start|restart|status 进行管理 ,内部文件需要更改的有PASSWD(这个是连接redis的密码,与redis.conf 对应 )REDIS_HOME ...

    redis 配置文件示例

    # 但针对某些 server 又需要一些个性化的设置, # 你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。 # # 但是要注意哦,include 是不能被 config rewrite 命令改写的 # 由于 redis 总是以...

    Redis.README.docx

    redis安装帮助文档,根据帮助文档可以知道redis安装使用的所有注意事项

    redis安装包以及phpredis扩展包-windows

    windows redis安装包 版本 3.0.504 64位 以及 php 的 redis扩展包(32位和64 位) 对应redis 3.0版本, 注意:php版本最低要求为7.0

    Redis的.net客户端StackExchange.Redis.zip

    目前有不少人在使用 ServiceStack.Redis这个.net客户端,但是这个的最新版本目前已经变成了商业软件。对于 ServiceStack.Redis这种行为,我们没有什么好说的,留给我们的选择是使用低版本的开源版本或者转向其他的...

    redis数据备份恢复

    redis数据备份恢复注意问题,RDB方式和AOF方式进行持久化操作细节

Global site tag (gtag.js) - Google Analytics