一、Redis基础知识

1.1 Redis简介

  Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库高速缓存消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

  一般项目都可以使用它。

1.2 Redis资料

  Redis的资料还是比较多的,首先推荐Redis中文网站的资料,其他的

1.2.1 初步教程

  Redis 教程:http://www.runoob.com/redis/redis-tutorial.html,菜鸟教程,内容很详细,阅读完后基本就对Redis有个全面的了解。其中每部分链接:

  Redis 教程 Redis 简介 Redis 安装 Redis 配置 Redis 数据类型

  Redis 命令Redis 键(key)Redis 字符串(String)Redis 哈希(Hash)Redis 列表(List)Redis 集合(Set)Redis 有序集合(sorted set)Redis HyperLogLogRedis 发布订阅Redis 事务Redis 脚本Redis 连接Redis 服务器

  Redis 数据备份与恢复 Redis 安全 Redis 性能测试 Redis 客户端连接 Redis 管道技术 Redis 分区 Java 使用 Redis PHP 使用 Redis

1.2.2 其他教程

  所有命令解析:http://www.redis.net.cn/order/,遇到不懂的可以来查询。

二、Redis和同类产品的比较

  根据Redis的简介,Redis可用作数据库高速缓存消息队列代理,那么当你打算使用它们这些功能的时候,可以考虑一下与其他产品的对比,选出一个更好用的。

1.1 做为数据库与之比较

  Redis是可以做为数据库来使用的,它可以看做一个key/value型数据库,因为Redis会根据配置定时将内存中的数据写入到硬盘中,这样即便重启以后依然可以恢复,但是有几个缺点需要考虑一下:

  • Redis只能存储key/value类型,虽然value的类型可以有多种,但是对于关联性的记录查询,没有Oracle/Mysql方便。
  • Redis内存数据写入硬盘有一定的时间间隔,在这个间隔内数据可能会丢失,虽然后续会介绍各种模式来保证数据丢失的可能性,但是依然会有可能,所以对数据有严格要求的不建议使用Redis做为数据库。

1.2 做为高速缓存与之比较

  我觉得Redis的本职工作还是高速缓存,同样可以做为缓存的有Ehcache、Memcached 。有一篇博客介绍的很详细:http://blog.csdn.net/jationxiaozi/article/details/8509732。我就简单总结一下,只说它们最大的特点,读取速度不再考虑范围之内,毕竟能作为相互比较的缓存工具,速度不会差的太多,只列出较为突出的优点和缺点,列出来表示其他没有:

Ehcache

    • 是一个Java开源项目,使用的方式就是引入一个jar包,非常方便

Memcached

    • 如果开启多线程模式,读取速度将有极大的提高
    • 数据只会存储在内存中,挂掉后数据不可恢复

Redis

    • 数据结构非常丰富,字符串、hash列表、list、Set等等
    • 支持主从,Sentinal,分片等多种高级特性,用于负载均衡和容灾,具有高可用性
    • 几乎支持所有语言的客户端

  根据需求选择最合适的。

1.3 做为消息队列与之比较

  Redis也是可以做为消息队列的,与之相同功能比较优秀的就是Kafka,简单比较如下:

Redis

    • 只能说具备发布订阅功能,一个或多个消费者订阅一个频道

Kafka

    • 高级特性一应俱全,集群、负载均衡、动态扩容、数据备份等

  这么说,如果能用Kafka就用Kafka,对于数据不敏感的一般场景也是可以应用Redis的。

【Redis】Redis学习(一) Redis初步入门的更多相关文章

  1. Redis基础学习(四)—Redis的持久化

    一.概述      Redis的强大性能很大程度上都是因为数据时存在内存中的,然而当Redis重启时,所有存储在内存中的数据将会丢失,所以我们要将内存中的数据持久化. Redis支持两种数据持久化的方 ...

  2. Redis基础学习(一)—Redis的安装

    一.Redis的安装 1.在Linux环境下安装gcc环境 yum install gcc-c++   2.解压缩Redis源码包 tar -zxf redis-3.0.0.tar.gz   3.编译 ...

  3. redis深入学习(二)-----redis配置文件、持久化

    redis配置文件 地址 units单位 a  配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bitb  对大小写不敏感 GENERAL通用 1.daemonize 2.pidf ...

  4. Redis基础学习(五)—Redis的主从复制

    一.概述     Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中.让从服务 ...

  5. 笔记-redis深入学习-1

    笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...

  6. redis 高级学习和应用场景

    redis 高级学习 1.redis 复制 2.redis 集群 3.哨兵机制 4.spring 与哨兵结合 5.数据恢复与转移 6.redis 的阻塞分析 redis 实战 1. 数据缓存(热点数据 ...

  7. redis初步入门(1)

    一.redis是一款高性能NOSQL系列的非关系型的数据库,其是用C语言开发的一个开源高性能键值对(key-value)数据库. 二.redis的应用场景 1.缓存(数据查询.短连接.新闻内容.商品内 ...

  8. Redis进阶实践之七Redis和Lua初步整合使用(转载 7)

    Redis进阶实践之七Redis和Lua初步整合使用 一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运 ...

  9. 十五分钟介绍 Redis数据结构--学习笔记

    下面是一个对Redis官方文档<A fifteen minute introduction to Redis data types>一文的翻译,如其题目所言,此文目的在于让一个初学者能通过 ...

随机推荐

  1. GO入门——2. 变量

    1 基本类型 零值并不等于空值,而是当变量被声明为某种类型后的默认值, 通常情况下值类型的默认值为0,bool为false,string为空字符串,引用为nil. 1.1 布尔类型 关键字:bool ...

  2. C#基础篇十小练习

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P03练 ...

  3. scala-05-map映射

    Map Scala映射(Map)是一组键/值对的对象. 任何值都可以根据键来进行检索.键在映射中是唯一的,但值不一定是唯一的.映射也称为哈希表.映射有两种,不可变的和可变的.可变对象和不可变对象之间的 ...

  4. maven-compiler-plugin 指定jdk的版本和编码

    为了让maven的jdk编译版本一致, 使用maven-compiler-plugin插件来协助管理 建议新建maven项目后的第一步就是配置该插件 <build> <plugins ...

  5. Java NIO系列教程(十) Java NIO DatagramChannel

    Java NIO中的DatagramChannel是一个能收发UDP包的通道.因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入.它发送和接收的是数据包. 打开 DatagramChann ...

  6. Linux下自动清理超过指定大小文件的方法

    由于线上业务用的squid,根据经验值如果长时间运行则缓存目录下的swap.state会慢慢变大,一旦超过60M,squid的性能就会急剧下降,因此需要定时去清理大于60M的swap.state文件. ...

  7. 自我总结(四) ---java web项目完结,j2ee的开始

    自我完善的过程就是在不断的自我总结不断的改进. 前半个月刚好把项目做完了,项目也答辩了.总的来说吧,我觉得自己在java web这块知识上不算是彻彻底底把他弄懂了,就是说到的知识点都能够回答的上来一些 ...

  8. sql server数据库查看锁表和解锁

    --查看锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys ...

  9. es6学习笔记1

    最近在阅读<探索es6>,就把自己认为重要的做一点笔记,方便日后学习. 1.获取更多的es6资源的办法 有两组 ES6 资源: “ ECMAScript 6 Tools ”,作者 Addy ...

  10. 创建第一个MVC应用程序

    整个国庆期假,Insus.NET没有出门,在家静心修炼MVC.这意味着Insus.NET将来的日子里会以MVC为学习,开发,应用作为重点,不过现在才开始踏出第一步...... 路慢慢...... 下载 ...