1、初识Redis
Redis(Remote Dictionary Server):远程字典服务。
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
简单来说:Redis 是一个基于内存的高性能key-value数据库。通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
ANSI
:是一种字符代码
2、为什么要使用Redis
Redis完全开源免费,遵守BSD协议,是高性能的key-value数据库。
Redis作为一种缓存工具,主要用于解决高并发的问题,在分布式系统中有着极其广泛的应用。
2.1、Redis优点
-
速度快,性能高 --- Redis每秒可以处理超过10万次读写操作。
- Redis能读的速度是110000次/s,写的速度是81000次/s 。
-
支持丰富的数据类型 --- 支持Strings、 Lists、 Hashes、 Sets、Ordered Sets 数据类型操作。
-
支持事务 --- Redis操作都是原子性的,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。
-
丰富的特性 -- -可用于缓存,消息,按key设置过期时间,过期后将会自动删除
2.2、Redis特性
- 数据的持久化 --- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- 数据的备份 --- Redis支持数据的备份,即master-slave模式的数据备份。
3、扩展
3.1、什么是原子性,什么是原子性操作
A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:
-
- 从A的帐户中减去1000块钱。如果A的帐户原来有3000块钱,现在就变成2000块钱了。
-
- 在B的帐户里加1000块钱。如果B的帐户如果原来有2000块钱,现在则变成3000块钱了。
如果在A的帐户已经减去了1000块钱的时候,忽然发生了意外,比如停电什么的,导致转帐事务意外终止了,而此时B的帐户里还没有增加1000块钱。那么,我们称这个操作失败了,要进行回滚。回滚就是回到事务开始之前的状态,也就是回到A的帐户还没减1000块的状态,B的帐户的原来的状态。此时A的帐户仍然有3000块,B的帐户仍然有2000块。
我们把这种要么一起成功(A帐户成功减少1000,同时B帐户成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。
如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。这种特性就叫原子性。
来源:oschina
链接:https://my.oschina.net/tingqianyunluo/blog/3208363