kevinler

  博客园  :: 首页  :: 新随笔  :: 联系 ::  :: 管理

最近在学习Redis,先看看简介

  Redis 是完全开源免费的,遵守BSD协议(可以自由的使用,修改源代码的协议,当然需要满足一定的条件),是一个高性能的key-value数据库。

 

特点&&优点

  支持数据的持久化,可以将内存中的数据保存在磁盘内,重启的时候可以再次加载进行使用。

  不仅支持key-value类型的数据,同时提供list,set,zset,hash等数据结构的存储。

  支持数据的备份,即master-slave模式的数据备份。

  支持丰富的特性,如publish/subscribe,通知,key过期等。

  性能及高,读110000次/s,写81000次/s。

  Redis的所有操作都是原子性的,要么成功执行,要么失败完全不执行(回滚)。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

 

与其他key-value存储的不同点:

  数据结构更为复杂(并提供对他们的原子性操作),其数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

  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账户也回到原来的状态)的操作叫原子性操作。  

 

posted on 2018-03-12 16:00  zlnevsto  阅读(182)  评论(1编辑  收藏  举报