Redis简述

Redis概念

     Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis特点

     Redis速度非常快,因为它本质上是使用内存存储,而其持久化实现主要是通过三条关键指令:SAVE BGSAVE LASTSAVE。它使用内存提供主存储支持,而仅使用硬盘做持久性的存储;它的数据模型非常独特,用的是单线程。

     作为一个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

Redis实现了master-slave(主从)同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

Redis 提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

Redis数据结构

string(字符串)、list(双向链表)、dict(hash表)、zset(排序set)

Redis存储方式

redis使用了两种文件格式:全量数据和增量请求。

全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;

增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。

redis的存储介质分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

save seconds updates,save配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。

appendonly yes/no ,appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。

appendfsync no/always/everysec ,appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

时间: 2024-09-04 15:12:04

Redis简述的相关文章

Redis(一)Redis简述

一 Redis 概念 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作

redis配置文件与未授权访问

redis配置文件与未授权访问 0x00 redis简述 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有

Redis面试题(46题)

1.什么是Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存.因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB.Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单

java详细面试题

struts和springMVC区别? stringbuffer和stringbuilder区别? mybatis原理? soa原理? dubbo的原理? solr怎么搭建,倒序索引? MQ消息队列? SQL语句? maven以及本地仓库? final关键字? 为什么使用ssm而不用ssh? struts2和springmvc区别? 开发工具,jvm,gc,设计模式,平时开发工程是你自己搭建吗? 项目中用到的技术dubbo,zookeeper,solr等? 这三年工作中你统计过自己的代码量大概有

java各公司面试记录

7.5李腾飞:康博嘉信息科技有限公司 人资问题:1.上家公司的性质.业务模式.规模.地址? 2.未来的职业规划? 3.为什么离职? 4.薪资要求? 技术问题:1.struts和springMVC区别? 2.stringbuffer和stringbuilder区别? 3.mybatis原理? 4.soa原理? 5.dubbo的原理? 6.solr怎么搭建,倒序索引? 7.MQ消息队列? 8.SQL语句? 7.7闫玉龙:中兴通讯有限公司 技术问题:1.maven以及本地仓库? 2.final关键字?

【原】Spring整合Redis(第一篇)—SDR简述

1.SDR说明 Spring Data Redis(SDR),是SpringFramework提供的一套简化访问Redis的API,是对Jedis的又一层封装. SDR集成了Jedis,JRedis,SRP,Lettuce这四种开源的Redis Connector,这些Connector都是针对于Redis的开源Java库.其中,JRedis和SRP从spring-data-redis1.7开始,就不支持了. 2.RedisTemplate说明 RedisTemplate是SDR的一个核心Hel

redis的应用场景简述

一个产品的使用场景肯定是需要根据产品的特性,先列举一下Redis的特点: 读写性能优异 持久化 数据类型丰富 单线程 数据自动过期 发布订阅 分布式 这里通过几个场景,不同维度说下Redis的应用. 高性能适合当做缓存 缓存是Redis最常见的应用场景,之所有这么使用,主要是因为Redis读写性能优异.而且逐渐有取代memcached,成为首选服务端缓存的组件.而且,Redis内部是支持事务的,在使用时候能有效保证数据的一致性. 作为缓存使用时,一般有两种方式保存数据: 1.读取前,先去读Red

Redis 持久化(简述)

Redis 持久化 分为 :RDB 持久化和 AOF 持久化 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整当 Redis 启动时, 如果 RDB 持久化和 AOF 持久化都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的 RDB 的优点:RDB 是一个非常紧凑(compact)的文件,它保存了 Redis 在某个时间点上的数据集. 这种文件非常适合

解密Redis持久化

本文内容来源于 Redis 作者博文,Redis 作者说,他看到的所有针对 Redis 的讨论中,对 Redis持久化的误解是最大的,于是他写了一篇长文来对 Redis 的持久化进行了系统性的论述.文章非常长,也很值得一看,NoSQLFan 将主要内容简述成本文. 什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中.也就是我们通常理解的硬盘上. 写操作的流程 首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程. 客户端向服务端发送写操作(数据在客户端的内存中) 数