本文目录一览:
- 1、java有哪些简洁的ORM框架?
- 2、redis到底是个什么东西
- 3、redis是怎么实现的
- 4、面试中问到Redis持久化的原理,本篇在做详细解答
2、WebWork【Java开源Web开发框架】WebWork是由组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EEWeb框架 。Struts【Java开源Web开发框架】Struts是一个基于SunJ2EE平台的MVC框架 , 主要是采用Servlet和JSP技术来实现的 。
3、Spring框架,这是排行第二的框架(我个人排得,非权威),这个框架出彩的地方就在于它的“依赖注入”和“控制反转” 。简单的说,就是在程序运行的时候才将参数注入到容器里 。持久层框架选Hibernate和Ibatis 。
redis到底是个什么东西Redis 是一种开源的高性能、非关系型、基于键值对的数据存储系统,也被称为数据结构服务器 。
Redis是一个内存中的键值数据库 , 通常称为数据结构服务器 。Redis和其他键值数据库之间的主要区别之一是Redis存储和操作高级数据类型的能力 。这些数据类型是大多数开发人员熟悉的基本数据结构(列表,映射 , 集合和排序集) 。
Redis是由意大利人SalvatoreSanfilippo(网名:antirez)开发的一款内存高速缓存数据库 。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API 。从2010年3月15日起,Redis的开发工作由VMware主持 。redis是一个key-value存储系统 。
Redis是一个nosql数据库,可以存储key-value值 。因为其底层实现中,数据读写是基于内存,速度非常快,所以常用于缓存;进而因其为独立部署的中间件,常用于分布式缓存的实现方案 。常用场景有:缓存、秒杀控制、分布式锁 。
redis是怎么实现的【redis分布式解决方案 基于redis分布式缓存框架】Redis主从复制是指在一个Redis集群中,将一个Redis节点作为主节点,其余的Redis节点作为从节点 。主节点负责写入数据,从节点负责读取数据 。
业务层实现:先读取nosql缓存层 , 没有数据再读取mysql层,并写入数据到nosql 。nosql层做好多节点分布式(一致性hash),以及节点失效后替代方案(多层hash寻找相邻替代节点),和数据震荡恢复了 。
有序集合的底层实现之一是跳表,除此之外跳表它在 Redis 中没有其他应用 。
redis作为当下web编程必不可少的服务,它的特点的是显而易见,相对memcached而言,做缓存,重启数据不丢失,非常好用 。
单线程最大的受限是什么?就是CPU , 现在服务器一般已经是多CPU,而单线程只能使用到其中的一个核 。redis作为一个网络内存缓存数据库,在实现高性能时 , 主要有4个点 。网络高并发 , 高流量的数据处理 。
面试中问到Redis持久化的原理,本篇在做详细解答可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作,快照文件名为dump.rdb 。每当Redis服务重启的时候都会从该文件中把数据加载到内存中 。在60秒内有10000次操作即触发RDB持久化 。
AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的 。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式 。
RDB 持久化机制 :是对 redis 数据执行周期性的持久化 。这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为 dump.rdb 。客户端也可以使用save或者bgsave命令通知redis做一次快照持久化 。
redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化) , 另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件) 。
在redis的配置里有着这样的一段配置:save 900 1save 300 10save 60 10000很关键的一段配置 , 这时RDB持久化的核心 。
推荐阅读
- redis 快 redis快速实战
- redis如何和数据库保持一致性 redis和数据库如何保证一致性
- redis性能为什么高? redis快的核心原因
- redis实现分布式锁 redis分布式锁怎么控制并发
- 查看redis里面的数据 查看redis里的数据