【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
-
redis是什么(定义、特点、作用)
定义:
Redis是C语言开发的一个开源的(遵从BSD协议)支持网络、可基于内存亦可持久化的日志型、高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。
特点:
- 丰富的数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
- 性能优秀,执行速度快。数据在内存中,纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快;单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;采用了非阻塞I/O多路复用机制读写速度非常快。
- 支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载;redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)。
RDB AOF 定义 是指用数据集快照的方式(半持久化模式)记录redis数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 是指所有的命令行记录以redis命令请求协议的格式(完全持久化存储)保存为aof文件。 优点 只有一个文件dump.rdb,方便持久化 数据完整性好 缺点 数据安全性低。(RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候) AOF文件比RDB文件大,且恢复速度慢 未完待续。。。
来源:oschina
链接:https://my.oschina.net/u/4247262/blog/3154042