最近在学习Redis,先看看简介:git
Redis 是彻底开源免费的,遵照BSD协议(能够自由的使用,修改源代码的协议,固然须要知足必定的条件),是一个高性能的key-value数据库。程序员
特色&&优势:github
支持数据的持久化,能够将内存中的数据保存在磁盘内,重启的时候能够再次加载进行使用。redis
不只支持key-value类型的数据,同时提供list,set,zset,hash等数据结构的存储。数据库
支持数据的备份,即master-slave模式的数据备份。windows
支持丰富的特性,如publish/subscribe,通知,key过时等。数据结构
性能及高,读110000次/s,写81000次/s。性能
Redis的全部操做都是原子性的,要么成功执行,要么失败彻底不执行(回滚)。单个操做是原子性的。多个操做也支持事务,即原子性,经过MULTI和EXEC指令包起来。学习
与其余key-value存储的不一样点:spa
数据结构更为复杂(并提供对他们的原子性操做),其数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中可是能够持久化到磁盘,因此在对不一样数据集进行高速读写时须要权衡内存,由于数据量不能大于硬件内存。
相比在磁盘上相同的复杂的数据结构,在内存中操做十分简单,能够作不少内部复杂性很强的事情。
Redis的安装
Windows下安装:
下载地址:https://github.com/MSOpenTech/redis/releases
支持32位和64位,下载压缩包到本地,解压,重命名为Redis;
打开命令行,切换到Redis目录,运行 redis-server.exe redis.windows.conf;
此时再次打开命令行(第一个命令行不要关,关闭后没法访问服务端),切换到Redis目录下并运行redis-cli.exe -h 127.0.0.1 -p 6379 ;
设置键值对 set myKey xxx,取出键值对 get myKey。
Linux下安装:
在终端下载Redis:
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
使用档案名字解压缩:
$ tar xzf redis-2.8.17.tar.gz
转到Redis路径:
$ cd redis-2.8.17
make:
$ make
启动redis服务:
$ cd src
$ ./redis-server
补充:什么是原子性,什么是原子性操做
例:
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帐户也回到原来的状态)的操做叫原子性操做。