Redis

1、Redis是什么?

最初意大利一家创业公司推出了一款基于MySQL的网站实时统计系统,然而没多久公司创始人对MySQL的性能感到失望,于是他设计了一个数据库,取名为Redis。Redis是Remote dictionay Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容,同大多数脚本语言中的字典一样,Redis字典中的键值除了可以是字符串还可以是其他数据类型,目前Redis支持的键值类型:字符串、散列类型、列表类型、集合类型、有序集合类型。(字典数据结构或者映射、关联数组dict["key"] = "value"是一个字典结构变量,字符串key是键名,而value是键值)

这种字典形式的存储结构与MySQL等关系数据库的二维表形式的存储结构有很大差异。例如:要存储一篇文章

post["title"] = "hello world"

post["content"] = "blabalba"

post['view"] = 0

pst["tag"] =["php" ,"ruby"]

现在我们希望这篇文章存储在数据库中,并且要求可以通过标签检索出文章,如果使用关系型数据库,一般会将标题、正文和阅读量存储在一个表中,而将标签存储在另一个表中,然后使用第三个表连接文章和标签表。查询时还要将三个表进行连接,不是很直观。使用Redis字典结构的存储方式和对多种键值数据类型的支持可以将程序中的数据直接映射到Resdis中,数据在Redis中的存储形式和其在程序中的存储形式非常相近。使用Redis另一个优势是其对不同的数据类型提供了非常方便的操作方式,如使用集合类型存储文章的标签,Redis可以对标签进行如交集、并集这样的集合运算操作。

2、内存存储和持久化

Redis数据库中的所有数据都存储在内存中,由于内存的读写速度远快于磁盘。因此Redis性能远优于其他基于硬盘存储的数据库。一台普通的笔记本电脑,Redis可以一秒内读写超过十万个键值。存储在内存中也是有问题的,如程序退出后内存中的数据会丢失,不过Redis提供了对持久化的支持,即可以将内存中的数据异步写入到磁盘中,同时不影响继续提供服务。

3、功能丰富

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

Redis为每个键设置生存时间(Time To Live,TTL)生存时间到期后会自动被删除,这一功能配合出色的性能让Redis可以作为缓存系统来使用。作为缓存系统,Redis可以限定数据占用的最大空间,在数据达到空间限制后可以按照一定规则自动淘汰不需要的键。

4.简单稳定

SQL语句中:select titile from posts where id = 1 limit 1

在Redis中要读取键名为post:1的散列类型键title字段的值,HGET post : 1 title

HGET就是一个命令,Redis提供一百多个命令,Redis是使用c语言开发的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值