1、一定要设置最大缓存大小并设置缓存策略

  如果不设置最大缓存,在新添加数据时,如果超过最大内存回事redis崩溃!

  设置方式:maxmemory 1GB

  使用redis-cli登录后,使用info命令查看内存情况:

    # Memory
    used_memory:882920
    used_memory_human:862.23K  数据占用了多少内存
    used_memory_rss:2412544
    used_memory_rss_human:2.30M
    used_memory_peak:898688
    used_memory_peak_human:877.62K
    total_system_memory:4044341248
    total_system_memory_human:3.77G 
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    maxmemory:0
    maxmemory_human:1.00G              占用内存的峰值
    maxmemory_policy:noeviction
    mem_fragmentation_ratio:2.73
    mem_allocator:libc

2、缓存策略

  当maxmemory限制到达的时候,Redis将采取的准确行为是由maxmemory-policy配置指令配置的。

  • noeviction - 当到达内存限制时返回错误
  • allkeys-lru - 回收最近最少使用(LRU)的键,为新数据腾出空间。
  • volatile-lru - 回收最近最少使用(LRU)的键,但是只回收有设置过期的键,为新数据腾出空间。
  • allkeys-random - 回收随机的键,为新数据腾出空间。
  • volatile-random - 回收随机的键,但是只回收有设置过期的键,为新数据腾出空间。
  • volatile-ttl - 回收有设置过期的键,尝试先回收离TTL最短时间的键,为新数据腾出空间。

3、持久化

  支持以下四种持久化方式:

  • Snapshotting(快照持久化-默认) 将内存中数据以快照的方式写入到二进制文件中;每隔一段时间,操作一次,可能会丢失一小部分数据。
  • Append-only file(文件持久化方式)将执行的写命令,写入aof文件中;

    配置如下:

      appendonly yes           #启用aof持久化方式
      # appendfsync always   #每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
      appendfsync everysec     #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
      # appendfsync no    #完全依赖os,性能最好,持久化没保证

        时间久了之后,aof文件会越来越大,需要将aof文件转为记录数据的二进制文件,以快照的方式进行持久化。命令:

bgrewriteao

  • desprecated(虚拟内存的方式)已被弃用!
  • diskstore方式 B-树方式 不常用

附:redis安装

  tar -zxvf redis-3.2.1.tar.gz

  cd redis-3.2.1

  make

  出现错误:gcc: Command not found

    安装gcc:  yum install gcc 或者  apt-get install gcc

  继续make,又出现如下错误:

    jemalloc/jemalloc.h: No such file or directory

  执行这个命令:make MALLOC=libc

  安装成功!

  cp redis.conf /etc/

  修改环境变量:

  vim /etc/profile

  最后一行添加

    :/usr/local/redis-3.2.1/src

  保存,退出!

  执行:source /etc/profile

  OK!

  redis安装包:http://download.csdn.net/detail/panpanteng/9626857

  

主从配置(只需配置从服务器)从服务器配置文件中增加:

  slaveof 192.168.91.234 6379
  masterauth 123456

redis 进阶的更多相关文章

  1. Redis进阶实践之十三 Redis的Redis-trib.rb文件详解

    一.简介     事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...

  2. Redis进阶实践之十六 Redis大批量增加数据

    一.介绍      有时,Redis实例需要在很短的时间内加载大量先前存在或用户生成的数据,以便尽可能快地创建数百万个键.这就是所谓的批量插入,本文档的目标是提供有关如何以尽可能快的速度向Redis提 ...

  3. Redis进阶实践之十八 使用管道模式加速Redis查询

    一.引言             学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中批量的增加数据,肯定是大批量的,为了这主题,我从新找起了解决方案.目前 ...

  4. Redis进阶实践之十三 Redis的Redis-trib.rb脚本文件使用详解

    转载来源:http://www.cnblogs.com/PatrickLiu/p/8484784.html 一.简介 事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的 ...

  5. Redis进阶实践之九 独立封装的RedisClient客户端工具类(转载9)

    Redis进阶实践之九 独立封装的RedisClient客户端工具类 一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己 ...

  6. Redis进阶实践之七Redis和Lua初步整合使用(转载 7)

    Redis进阶实践之七Redis和Lua初步整合使用 一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运 ...

  7. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)

    Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...

  8. Redis进阶实践之五Redis的高级特性(转载 5)

    Redis进阶实践之五Redis的高级特性 一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今 ...

  9. Redis进阶实践之四Redis的基本数据类型(转载4)

    Redis进阶实践之四Redis的基本数据类型 一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软 ...

  10. Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)

    Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...

随机推荐

  1. PAT 团体程序设计天梯赛-练习集L1-011. A-B

    本题要求你计算A-B.不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B. 输入格式: 输入在2行中先后给出字符串A和B.两字符串的长度 ...

  2. Sass与Compress实战:第六章

    概要:介绍Compass如何让你从本地开发原型轻松转移到正产环境的网址或Web应用中. 本章内容: ● CSS精灵的历史和基本原则 ● Compass混合器让精灵自动化 ● 自定义精灵图片和CSS输出 ...

  3. PHP导出一个txt文本文件

    <?php Header( "Content-type:   application/octet-stream "); Header( "Accept-Ranges ...

  4. MySQL Replicationation基础

    摘要 一.MySQL Replication 介绍MySQL Replication的基本概念,摘自于Mysql官网 二.Replication Configuration 2.1 Basic Ste ...

  5. JSP的改动需要重启应用服务器才能生效?

    PLM的版本由2013版升级到2016版,部署到应用服务器tomEE的war包也更新了,今天在Linux服务器上hot fix一个JSP页面的时候发现改动没有生效,要重启tomEE才生效,纳闷了一下才 ...

  6. 移动端touch事件获取clientX, clientY

    目有个交互需要实现手指滑动的交互,pc端使用mousedown,mousemove,mouseup监听实现. 但在ios设备上mousemove是不好监听的,同类的方法是touchstart,touc ...

  7. javacript没有多维数组只能模拟?

    为什么说javacript没有多维数组只能模拟?但是我看到是可以实现多维数组的啊!这是为什么呢?下面我们来实验下. <!DOCTYPE html> <html lang=" ...

  8. Mac 命令行中进入带有空格的文件夹

    http://blog.sina.com.cn/s/blog_5e8392b10100jkvg.html 今天在公司用mac的时候,有个文件夹的名字有空格,怎么都进不去,在网上一查原来不能直接cd 文 ...

  9. 转:JMeter基础--逻辑控制器Logic Controller

    1.ForEach控制器 ForEach控制器在用户自定义变量中读取一系列相关的变量.该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值.所以ForEach总是和User Defin ...

  10. Spring 框架理论基础

    一. IOC 控制反转 概念解释:当我需要一个资源时,容器已经帮我准备好,我只需要接受就可以. // 加载 IOC 容器 ApplicationContext ac = new ClassPathXm ...