Redis 简介和适用场景

作者:Rui 发布时间:May 30, 2016 分类:Redis,BIGDATA 浏览:662

官网概述

Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

以上是官网对于redis的简介,非常精简准确的描述了redis的所有特性和功能。Redis 就是一个内存数据库,也就是大家常说的NoSQL数据库。以key/Value的形式存储数据。类似于Memcached,但要比Memcached支持更多的数据类型,使用更加方便,性能也更加高效。而且Redis本身对高可用和分布式部署的高级特性支持也非常好。

NoSQL 简介

NoSQL, not only sql 指的是非关系型数据库,是对所有非关系型数据库的总称,NoSQL一般用来处理关系型不是很强的,数据规模非常巨大的数据。这些数据无需特定的模式,可以很方便的进行横向扩展。

阅读剩余部分...

通过PowerShell 创建 Azure Redis

作者:Rui 发布时间:May 24, 2016 分类:Azure,BIGDATA,Redis,CLOUD 浏览:757

目前中国版本的Portal不支持管理Azure Redis,只能通过PowerShell来创建Redis 服务,请参考以下步骤创建Azure Redis
首先,安装Azure Power Shell,从以下地址下载:https://www.azure.cn/downloads/
redis1.png
点击下载安装。或直接访问该地址下载 http://aka.ms/webpi-azps

其次,安装成功后,确认Azure RM 的 命令是否已经成功安装
执行命令:get-module –ListAvailable azurerm*,如果执行结果中包含AzureRM.RedisCache,则安装成功
redis2.png

阅读剩余部分...

Azure 高级版 Redis 如何持久化

作者:Rui 发布时间:May 11, 2016 分类:Azure,BIGDATA,Redis,CLOUD 浏览:697

Redis 持久化

为了保证redis cache数据安全,同时在服务器故障时,能够在重启后进行数据恢复。redis 提供了两种持久化方案 RDB和AOF。

RDB

RDB持久化,快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照

RDB持久化过程:

  1. Redis启用子线程fork主线程进行持久化,不影响父线程的I/O
  2. 父进程继续处理client请求,子进程负责将内存内容写入到临时文件。由于os的写时复制机制(copy on write)父子进程会共享相同的物理页面,当父进程处理写请求时os会为父进程要修改的页面创建副本,而不是写共享的页面。所以子进程的地址空间内的数据是fork时刻整个数据库的一个快照。
  3. 当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程退出(fork一个进程入内在也被复制了,即内存会是原来的两倍)。

AOF

Append-only file,aof 比快照方式有更好的持久化,是由于在使用aof持久化方式时,redis会将每一个收到的写命令都通过write函数追加到文件中(默认是appendonly.aof)。当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到磁盘的时机

AOF持久化过程:

  1. Redis启用子线程fork主线程进行持久化,不影响父线程的I/O
  2. 子进程根据内存中的数据库快照,往临时文件中写入重建数据库状态的命令
  3. 父进程继续处理client请求,除了把写命令写入到原来的aof文件中。同时把收到的写命令缓存起来。这样就能保证如果子进程重写失败的话并不会出问题。
  4. 当子进程把快照内容写入已命令方式写到临时文件中后,子进程发信号通知父进程。然后父进程把缓存的写命令也写入到临时文件。
  5. 现在父进程可以使用临时文件替换老的aof文件,并重命名,后面收到的写命令也开始往新的aof文件中追加。

阅读剩余部分...

Redis 知识整理

作者:Rui 发布时间:May 6, 2016 分类:Redis,BIGDATA 浏览:437

以前工作中,有使用过Redis缓存,但并没有系统的好好整理下,最近的工作中,又需要大量用到Redis,所以也借此机会好好整理下,并深入了解下Redis的使用。

目录