redis持久化存储是什么

这篇文章主要介绍Redis持久化存储是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

redis概述
REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统。redis和大名鼎鼎的Memcached缓存服务软件很像,但是redis支持的数据存储类型比memcached更丰富,包括strings(字符串),lists(列表),sets(集合)和sorted sets(有序集合)等。
这些数据类型支持push/pop,add/remove及取交集,并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached缓存服务一样,为了保证效率,数据都是缓存在内存中提供服务。和memcached不同的是,redis持久化缓存服务还会周期性的把更新的数据写入到磁盘以及把修改的操作记录追加到文件里记录下来,比memcached更有优势的是,redis还支持master-slave(主从)同步,这点很类似关系型数据库mysql主从复制功能。
Redis是一个开源的使用C语言编写(3万多行代码),支持网络,可基于内存亦可持久化的日志型,Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。
Redis软件的出现,再一定程度上弥补了memcached这类key-value内存缓存服务的不足,在部分场合可以对关系数据库起到很好的补充作用。redis提供了Python,Ruby,Erlang,PHP客户端,

1.2 redis特点

key-value键值类型存储 支持数据可靠存储及落地 单进程单线程高性能服务器 crash safe & recovery slow 单机qps可以达到10W 适合小数据量高速读写访问

1.3 Redis优点

与memcached不同,Redis可以持久化存储数据 性能很高:Redis能支持超过10W每秒的读写频率。
丰富的数据类型:Redis支持二进制的Strings,Lists,Hashes,Sets及sorted Sets等数据类型操作
原子:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行
丰富的特性:Redis还支持publish/subscribe(发布/订阅),通知,key过期等等特性。 redis支持异机主从复制。

1.4 redis缺陷与陷阱
系统运行有毛刺
不同命令延迟差别极大
内存管理开销大(设置低于物理内存3/5)
buffer io造成系统OOM(内存溢出)

1.5 redis的数据类型
作为Key-value型存储系统数据库,Redis提供了键(Key)和值(value)映射关系。但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一,下面为最为常用的数据类型:

String 字符串 Hash 哈希表 List 列表 Set 集合 Sorted set 有序集合

1.6 redis 持久化

通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用快照(snapshot)的方式,将内存中的数据不断写入磁盘,或使用类似Mysql的binlog日志(aof但并不用于主从同步)方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

1.7 redis应用场景
redis的最佳应用场景

Redis最佳试用场景是全部数据in-memory

Redis更多场景是作为Memcached的替代品来使用。

数据比较重要,对数据一致性有一定要求的业务。

当需要除key/value之外的更多数据类型支持时,使用Redis更合适。

需要提供主从同步以及负载均衡分布式应用场景(redis主从同步)

1.8redis生产上的教训

一定要进行Master-slave主从同步配置,在出现服务故障时可以切换

在master禁用数据持久化,只需要在slave上配置数据持久化

物理内存+虚拟内存不足,这个时候dump一直死着,时间久了机器挂掉。这个情况就是灾难!

当Redis物理内存使用超过内存总容量的3/5时就会开始比较危险了,就开始做swap,内存碎片大

当达到最大内存时,会清空带有过期时间的key,即使key未到过期时间。

redis与DB同步写的问题,先写DB,后写redis,因为写内存基本上没有问题。

快速部署一个redis环境
2.1 Redis部署环境搭建

主机名 eth0 用途 Master-redis01 10.0.0.135 主Redis Slave-redis02 10.0.0.136 从Redis

2.2 开始安装redis服务
在redis的官方网站()下载最新的稳定版本redis。

wget -q

#在redis01和redis02都执行如下操作

[root@redis01 ~]# tar xf redis-2.8.9.tar -C /usr/src/ [root@redis01 ~]# cd /usr/src/redis-2.8.9/ [root@redis01 redis-2.8.9]# make MALLOC=jemalloc [root@redis01 redis-2.8.9]# make PREFIX=/usr/local/redis install [root@redis01 redis-2.8.9]# LANG=en [root@redis01 redis-2.8.9]# tree /usr/local/redis/bin/ /usr/local/redis/bin/ ├── redis-benchmark ├── redis-check-aof ├── redis-check-dump ├── redis-cli └── redis-server 0 directories, 5 files

命令执行完成之后,会在/usr/local/redis/bin/目录下生成5个可执行文件,分别是:

redis-server,redis-cli,redis-benchmark,redis-check-aof,redis-check-dump

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。