Redis学习笔记(一)

原创于我的博客,地址为http://irfen.me

一、简介

Redis是一个开源的高性能键值对数据库。他通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。

国内如新浪微博、知乎,国外如Github、Stack Overflow、Flickr、暴雪和Instagram,都是Redis的用户。

二、Redis的存储结构

Redis是REmote DIctionary Server(远程字典服务器)的缩写,他以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。

到目前为止,Redis支持的键值数据类型如下:

  • 字符串类型
  • 散列类型
  • 列表类型
  • 集合类型
  • 有序集合类型

这种字典形式的存储结构与常见的MySQL等关系数据库的二维表形式的存储结构有很大的差异。

三、Redis的存储

Redis数据库中所有的数据都存储在内存中。由于内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有明显的优势,在一台普通PC上,Redis可以在一秒内读写超过十万个键值。

将数据存储在内存中也有问题,例如程序退出后内存中的数据会丢失。不过Redis提供了对持久化的支持,即将内存中的数据异步写入到硬盘中,同事不影响继续提供服务。

四、功能丰富

Redis虽然是作为数据库开发,但是由于其提供了丰富的功能,很多人也将其用作缓存、队列系统等。

Redis可以为每个键值设置存活时间(Time To Live, TTL),到期后会自动被删除。

作为缓存系统,Redis还可以限定数据占用的最大内存空间,在数据达到空间限制后可以按照一定的规则删除不需要的键。

五、简单稳定

Redis只管的存储结构使得通过程序与Redis交互十分简单。在Redis中使用命令来读写数据,命令语句之于Redis就相当于sql语言的关系数据库。例如获取posts表中id为1的记录title字段值,用Redis的命令就是:

HGET posts:1 title

其中,HGET就是命令。Redis提供了一百多个命令,听起来很多,常用的就十几个,而且很容易记。

 

Redis是开源的,良好的开发分为和严谨的版本发布机制使得Redis的稳定版本非常可靠。

顺便说一句,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版,为奇数的是非稳定版。

原创于我的博客,地址为http://irfen.me

你可能感兴趣的:(java,redis,数据库)