Redis 是一个开源(BSD许可)的,由C语言实现的基于key-value 的nosql 内存数据库;采用单线程架构;
它可以用作内存数据库
(这里所说内存数据库,是因为redis毕竟不是关系性数据库,在数据持久化等方面和mysql 相比还是有不足的。)、缓存和消息中间件。
Redis 支持的数据类型有字符串(strings)
、哈希(hash)
、列表(list)
、
集合(set)
、有序集合(zset)
、位图(bitmap)
、地理信息定位(geospatial)
等多种数据结构和算法。
Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,可以保证内存中的数据不会“丢失”。
Redis还提供了键过期、发布订阅、事务、Lua脚本等附加功能。
Redis 执行命令的速度非常快,官方给出的数字是读写性能可以达到10万/秒;实际应用中根据机器的性能会有所不同。
速度快可以归纳为四点:
1:数据都是放在内存中的;
2:Redis 是用C语言写的;
3:Redis 是单线程架构,预防了多线程竞争问题;
4:Redis的作者对其源码精打细磨。
几乎所有编程语言都提供了类似的键值对功能,如JAVA中的Map、Python中的dict。
Redis 支持的数据类型有字符串(strings)
、哈希(hash)
、列表(list)
、
集合(set)
、有序集合(zset)
。
简单事务
1:缓存
2:排行榜系统
3:计数器系统
4:社交系统
5:消息队列