Redis可以在没有配置文件的情况下通过内置的配置来启动,但是这种启动方式只适用于开发和测试。

合理的配置Redis的方式是提供一个Redis配置文件,这个文件通常叫做redis.conf

redis.conf文件中包含了很多格式简单的指令如下:

关键字 参数1 参数2 ...参数N

如下是一个配置指令的示例:

slaveof 127.0.0.1 6380

如果参数中含有空格,那么可以用双引号括起来,如下:

requirepass "hello world"

这些指令的配置,意义以及深入使用方法都能在每个Redis发布版本自带的的redis.conf文档中找到。

  • 自描述文档https://raw.github.com/antirez/redis/2.8/redis.conf.

通过命令行传参

自Redis2.6起就可以直接通过命令行传递Redis配置参数。这种方法可以用于测试。 以下是一个例子:这个例子配置一个新运行并以6380为端口的 Redis实例,使配置它为127.0.0.1:6379Redis实例的slave。

./redis-server --port 6380 --slaveof 127.0.0.1 6379

通过命令行传递的配置参数的格式和在redis.conf中设置的配置参数的格式完全一样, 唯一不同的是需要在关键字之前加上 前缀--

需要注意的是通过命令行传递参数的过程会在内存中生成一个临时的配置文件(也许会直接追加在 命令指定的配置文件后面),这些传递的参数也会转化为跟Redis配置文件一样的形式。

运行时配置更改

Redis允许在运行的过程中,在不重启服务器的情况下更改服务器配置,同时也支持 使用特殊的CONFIG SETCONFIG GET命令用编程方式查询并设置配置。

并非所有的配置指令都支持这种使用方式,但是大部分是支持的。更多相关的信息请查阅 CONFIG SET and CONFIG GET 页面。

需要确保的是在通过CONFIG SET命令进行的设置的同时,也需在 redis.conf文件中进行了相应的更改。 未来Redis有计划提供一个CONFIG REWRITE命令在不更改现有配置文件的同时, 根据当下的服务器配置对redis.conf文件进行重写。

配置Redis成为一个缓存

如果你想把Redis当做一个缓存来用,所有的key都有过期时间,那么你可以考虑 使用以下设置(假设最大内存使用量为2M):

maxmemory 2mb
maxmemory-policy allkeys-lru
    1. maxmemory-policy volatile-lru: 过期策略,提供六种策略
    2. [b][color=red]volatile-lru:删除过期和lru 的key(默认值)[/color][/b]
    3. allkeys-lru : 删除lru算法的key
    4. volatile-random:随机删除即将过期key
    5. allkeys->random:随机删除(这个真傻)
    6. volatile-ttl : 删除即将过期的
    7. noeviction : 永不过期,返回错误(也比较傻)

以上设置并不需要我们的应用使用EXPIRE(或相似的命令)命令去设置每个key的过期时间,因为 只要内存使用量到达2M,Redis就会使用类LRU算法自动删除某些key。

相比使用额外内存空间存储多个键的过期时间,使用缓存设置是一种更加有效利用内存的方式。而且相比每个键固定的 过期时间,使用LRU也是一种更加推荐的方式,因为这样能使应用的热数据(更频繁使用的键) 在内存中停留时间更久。

基本上这么配置下的Redis可以当成memcached使用。

当我们把Redis当成缓存来使用的时候,如果应用程序同时也需要把Redis当成存储系统来使用,那么强烈建议 使用两个Redis实例。一个是缓存,使用上述方法进行配置,另一个是存储,根据应用的持久化需求进行配置,并且 只存储那些不需要被缓存的数据。

请注意:用户需要详细阅读示例redis.conf文件来决定使用什么内存上限处理策略。

redis 配置应用(摘)的更多相关文章

  1. redis 配置

    一 Redis 支持写的指令 Redis大概的命令如下:set setnx setex appendincr decr rpush lpush rpushx lpushx linsert lset r ...

  2. redis配置详解

    ##redis配置详解 # Redis configuration file example. # # Note that in order to read the configuration fil ...

  3. Redis配置集群一(window)

    因为接下来的项目要使用到redis作为我们项目的缓存,所以就花了一天时间研究了一下redis的一些用法,因为没转linux虚拟机,所以就决定先研究一下windows版本的redis集群.主要是redi ...

  4. redis配置认证密码

    redis配置密码1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修改 ...

  5. CentOS6.5下Tomcat7 Nginx Redis配置步骤

    所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用tomcat7和本文中提供的jar包.下载地址: http://pan.baid ...

  6. Ubuntu环境下的Redis 配置与C++使用入门

      Redis是一个高性能的key-value数据库. Redisedis的出现,非常大程度补偿了memcached这类key/value存储的不足,在部分场合能够对关系数据库起到非常好的补充作用.它 ...

  7. redis配置密码认证

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 ? 1 #requirepass foobared 去掉行前的注 ...

  8. redis 配置(1)

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 #requirepass foobared 去掉行前的注释,并修 ...

  9. C# Redis学习系列三:Redis配置主从

    Redis配置主从 主IP :端口      192.168.0.103 6666 从IP:端口       192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...

随机推荐

  1. 如何查看JDK以及JAVA框架的源码

    如何查看JDK以及JAVA框架的源码 设置步骤如下: 1.点 “window”-> "Preferences" -> "Java" -> &q ...

  2. iOS 宏(define)与常量(const)的正确使用

    在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰 你能区分下面的吗?知道什么时候用吗? #define HSCoder @ ...

  3. zabbix监控交换机

    zabbix可以通过snmp协议监控交换机 前提: 交换机需要开启snmp协议,通过snmpwalk 可以抓取到数据就可以了 snmpwalk -v 2c -c public *.*.*.* 1.创建 ...

  4. mvc 数据验证金钱格式decimal格式验证

    mvc 数据验证金钱格式decimal格式验证 首先看下代码 /// <summary> /// 产品单价 /// </summary> [Display(Name = &qu ...

  5. Java反射与动态代理

    Java反射机制可以动态地获取类的结构,动态地调用对象的方法,是java语言一个动态化的机制.java动态代理可以在不改变被调用对象源码的前提下,在被调用方法前后增加自己的操作,极大地降低了模块之间的 ...

  6. Android组件间交互

    四大组件相信大家都不陌生了吧,今天咱们就组件间通信做个说明: 首先: 主要今天的目的是为了说明Android 提供的一个ResultReceiver类,这个类相信大家都不陌生吧>?但是你们层深入 ...

  7. 微信中修改title

    //需要jQuery.zepto版 function weixinTitle(){ var $body = $('body'); document.title = 'title'; // hack在微 ...

  8. xcode8集成百度地图(framwork包) archive是bitcode问题

    (1)问题描述:真机和模拟器测试都能编译安装,但是需要打包archive的时候 总是编译出错,眼看就要上线了,还出现这问题,纠结啊.... 打印出来的错误: ld: bitcode bundle co ...

  9. 报错:org.eclipse.swt.SWTError: No more handles at org.eclipse.swt.SWT.error(SWT.java:4517)

    在Mars.Kepler的版本裡,時常會出現以下錯誤導致eclipse無法進行運作 Error.log org.eclipse.swt.SWTError: No more handles     at ...

  10. java语言的认识

    class Hello{ public static void main(String [] args) { System.out.println("Hello Word 你好") ...