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

最新文章

  1. div里嵌套了img 底部会出现白边
  2. myeclipse实现包的分层显示
  3. C# 使用 NPOI 库读写 Excel 文件
  4. 我教女朋友学编程html系列(7)—Html无序列表、自定义列表、有序列表及常用例子
  5. codeforces 659A Round House
  6. [改善Java代码]数组的真实类型必须是泛型类型的子类型
  7. vs: 编译: 计算机中丢失mspdb100.dll
  8. 3223: Tyvj 1729 文艺平衡树
  9. JAVA Socket编程(二)之TCP通信
  10. Jquery判断checkbox是否被选中
  11. Splay讲解
  12. Android 结合实际项目学会ListView局部刷新和相关知识《一》
  13. Uva - 810 - A Dicey Problem
  14. Yii框架基础增删查改
  15. SQL学习指南第三篇
  16. 简单的实现HTTP密码验证登陆
  17. Input标签_实现限制输入字符类型(只能输入特定类型字符)
  18. Python之随机梯度下降
  19. redis永久化存储
  20. BZOJ1079或洛谷2476 [SCOI2008]着色方案

热门文章

  1. js 判断图片是否加载完成
  2. Spring-IOC BeanFactory运行时动态注册bean
  3. 1877. [SDOI2009]晨跑【费用流】
  4. PHP MemCached高级缓存配置图文教程
  5. 10、Android--技巧
  6. shuffle() 函数
  7. 说说Javac
  8. springboot项目打war包pom设置
  9. C++:引用的简单理解
  10. TortoiseGit需要重复填写用户名和密码的问题