数据库 - About Redis

Redis是一种性能高的key-value数据库,它有以下几个优点:

运行于内存但可以持久化到磁盘中,重启时能够再次加载使用。

Redis还能提供List,set,sorted set,hash等数据储存结构。

支持数据备份 master-slave主从模式。

MySQLRedis
类型关系型数据库,严格ACIDNoSQL,不严格ACID
功能持久化数据到硬盘内,读取速度慢使用频繁的数据存储在缓存中,速度快,运行效率高
运行原理为了保证ACID牺牲了许多读写性能。为了提高吞吐对数据库并不需要非常高的一致性,而是需要快速响应,因此不需要满足ACID。大缓存、分布式服务

CAP(consistency 一致性、Availability 可获得快速响应、Partition 分布性)通常是满足三者中的两个(CP、或AP)。

MongoDBRedis
性能
操作性类似RDB,查询方式便利key-value操作
内存和存储大数据存储,依赖OS虚拟内存,镜像文件占用内存增加虚拟内存特性,突破物理内存限制
数据持久化和回复MongoDB 1.8后 采用和MySQL类似的binlog方式支持持久化Redis依赖快照进行持久化,AOF提高可靠性但降低访问性能
一致性不支持事务,靠客户端保证支持事务,按照顺序执行
分析内置数据分析功能        不支持
应用场景海量数据,提升访问效率小数据量,侧重性能

Redis数据类型:String(字符串、序列化数据)、Hash(键值对)、List(字符串列表,插入顺序排列)、Set(无序集合,增删查速度O(1))、Sorted Set(不允许元素重复,每个元素关联一个double分数作为排序依据)

Redis定时:Redis的服务器会处理两类事件,文件事件(服务器处理套接字)和时间事件(服务器处理定时操作)。

一个时间事件有三个属性:事件标识号 id,事件到达时间 when,时间事件处理器 timeProc,当时间事件到达后,服务器调用对应的处理器。时间事件会根据Proc的返回值确定是周期事件还是定时事件。

Redis 单线程保持高效的原因:

虽然是单线程处理,但是通过I/O多路复用来监听多个套接字,处理器实现了高性能的网络通信模型,也可以很好地与Redis服务器中其他单线程模块进行对接,保持了Redis内部单线程设计的简单。

Redis的数据淘汰策略:

no-eviction:不删除策略,达到最大内存限制时,如果还需要更多内存,则返回错误信息。

allkey-lru:从Key的哈希表(server.db[i].dict)中选取多个key,在选到的key中利用lru算法淘汰掉最少使用的数据;

allkey-random:从所有的key哈希表(server.db[i].dict)中随机挑选数据淘汰;

volatile-lru:从设置过期时间的哈希表(server.db[i].expires)中随机挑选多个key,在选到的key中使用lru淘汰最近最少使用的数据。

volatile-random:从设置过期时间的哈希表(server.db[i].expires)随机删除key;

volatile-ttl:从设置过期时间的哈希表(server.db[i].expires)中随机挑选多个key,然后在选到的key中选择剩余时间最短的数据淘汰;

Redis:Remote Dictionary Server,是一个Key-value类型的内存数据库,数据库加载与内存中操作,定期异步操作将数据库的数据写入磁盘,或者把修改操作写入追加的记录文件,并且实现了主从同步。支持存储的value多样,包括String、list、set、只是zset(有序集合)和hash(哈希类型),都支持push / pop / add / remove,取交集并集差集等,且都是原子性操作。

Redis的缺点是数据库的容量受物理内存限制,不能用于海量数据高性能读写,只适合数据量较小的高性能运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值