redis 进阶
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 进阶的更多相关文章
- Redis进阶实践之十三 Redis的Redis-trib.rb文件详解
一.简介 事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的角度来阐述一下,对第一次使用的人来说很重要.redis-trib.rb是redis官方推出的管理re ...
- Redis进阶实践之十六 Redis大批量增加数据
一.介绍 有时,Redis实例需要在很短的时间内加载大量先前存在或用户生成的数据,以便尽可能快地创建数百万个键.这就是所谓的批量插入,本文档的目标是提供有关如何以尽可能快的速度向Redis提 ...
- Redis进阶实践之十八 使用管道模式加速Redis查询
一.引言 学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中批量的增加数据,肯定是大批量的,为了这主题,我从新找起了解决方案.目前 ...
- Redis进阶实践之十三 Redis的Redis-trib.rb脚本文件使用详解
转载来源:http://www.cnblogs.com/PatrickLiu/p/8484784.html 一.简介 事先说明一下,本篇文章不涉及对redis-trib.rb源代码的分析,只是从使用的 ...
- Redis进阶实践之九 独立封装的RedisClient客户端工具类(转载9)
Redis进阶实践之九 独立封装的RedisClient客户端工具类 一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己 ...
- Redis进阶实践之七Redis和Lua初步整合使用(转载 7)
Redis进阶实践之七Redis和Lua初步整合使用 一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运 ...
- Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)
Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...
- Redis进阶实践之五Redis的高级特性(转载 5)
Redis进阶实践之五Redis的高级特性 一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今 ...
- Redis进阶实践之四Redis的基本数据类型(转载4)
Redis进阶实践之四Redis的基本数据类型 一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软 ...
- Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)
Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...
随机推荐
- 【成长之路】【python】python基础2
1.位运算 &(与) | (或) ~ (非) ^(异或) 2.三元运算 c = a+b if a>b else a-b if (a>b): a+b else: a-b 3.小知识( ...
- 大数据时代之hadoop(四):hadoop 分布式文件系统(HDFS)
分布式文件系统即是网络中多台计算机组合在一起提供一个统一存储及管理的系统. Hadoop提供了一个文件系统接口和多个分布式文件系统实现,其中比较重要的就是HDFS(Hadoop Distributed ...
- [妙味JS基础]第六课:作用域、JS预解析机制
知识点总结 浏览器的解析方法 script 全局变量,全局函数 自上而下 函数 由里到外 "JS的解析器": 1)“找一些东西”:var function 参数 var a=未定义 ...
- 《JS权威指南学习总结--6.1原型》
内容要点: 一.每一个JS对象(null除外)都和另一个对象相关联."另一个"对象就是我们熟知的原型,每一个对象都从原型继承属性. 二.所有通过对象直接量创建的对象都具有同一个原型 ...
- 读书笔记之ado.net entity framework
提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...
- discuz使用总结
使用xampp作为运行环境 xampp的初始目录. xampp中mysql root账户的密码是空
- WEB前端组件思想【分页】
DEMO1: 很早就想写一些功能性的组件,无奈技术有限一点一点的边工作,边学. 近日工作中用到分页功能,当然由于加快业务进度,第一选择肯定是选择插件,但是实用性来说,还是有那么一点不适合.毕竟插件是通 ...
- Java 向SQL Server插入文件数据
package sqlserver; import java.util.Date; import java.util.UUID; import java.text.SimpleDateFormat; ...
- C的指针,真的很经典
工作以后,一直使用C++,也做过Objective C,各种类的方法封装得很好,使用很简单,今天偶尔翻看一下 严蔚敏 的 <数据结构>,第一个程序demo就看了半天,一是由于demo的变量 ...
- MySQL 的一个Bug?
在 my.ini 中的 [mysqld] 段设置 mysql basedir 和 datadir,如下: #Path to installation directory. All paths are ...