Redis学习-redis概述

最近刚刚接触了redis技术,对此有一些了解,这是简单作一点总结。java

Redis简介

首先,简单了解一下NoSQL(Not only sql),不要错误的理解为:没有SQL,而是不单单是SQL。NoSQL工具也是一种简易的数据库,它主要是基于内存的数据库,并提供必定的持久化功能。如今有不少这种技术如:memcachedb,redis,MongoDB等等。
Redis 是彻底开源免费的,遵照BSD协议,是一个高性能的key-value数据库。
Redis的性能十分优越,能够支持每秒十几万的读/写操做,其性能超数据库,而且支持集群、分布式、主从同步等配置,还支持必定事务能力。
Redis 与其余 key - value 缓存产品有如下三个特色:git

  • Redis支持数据的持久化,能够将内存中的数据保存在磁盘中,重启的时候能够再次加载进行使用。
  • Redis不单单支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

redis的性能优越主要来自3个方面:github

  • 基于ANSI C语言编写的,接近于汇编语言的机器语言,运行十分快速。
  • 基于内存的读/写,速度天然比数据库的磁盘读/写要快。
  • 它的数据结构只有6种数据类型,数据结构比较简单,所以规则较少,而数据库则是范式,完整性、规范性须要考虑的规则较多,处理业务会比较复杂。

Redis在javaweb中的应用

通常,在javaweb中应用redis存在两个场景,一个是缓存经常使用的数据;另外一个是在须要高速读/写的场合使用它快速读/写,好比一些须要进行商品抢购和抢红包的场合。
在使用Redis存储的时候,须要从3个方面进行考虑:web

  • 业务数据经常使用吗?命中率如何?若是命中率低,就没有必要写入缓存。
  • 该业务数据是读操做多仍是写操做多,若是写操做多,频繁须要写入数据库,也没有必要使用缓存。
  • 业务数据大小如何?若是要存储几百兆字节的文件,会给缓存带来很大的压力,有没有必要?
    考虑这些问题后,如须要缓存,就可使用了。

Redis的安装和使用

个人电脑是windows系统的,因此主要以此为主,其它系统的安装就没有介绍。
下载地址:redis
也能够到Redis的官网下载。
下载下来是一个压缩包,解压后的目录以下:

方便启动在目录下新建一个startup.cmd,用编辑工具打开,写入如下内容:redis-server redis.windows.conf
就是经过命令来读取redis-window.conf的内容,用来启动redis,双击启动,出现下图就说明启动成功了。

在文件夹下还有一个redis-cli.exe,它一个Redis自带的客户端工具,能够链接到redis服务器,如图:

这样就安装好了redis。redis

安装好了,咱们经过代码来测试一下redis的性能,要想使用redis,须要下载jedis.jar包。
下面是测试代码:(代码来自书上例子)sql

package com.mz.redis;
import redis.clients.jedis.Jedis;
/**
 * @Package com.mz.redis
 * @Description: redis测试
 * @auther MZ
 * @create 2017/10/10 22:14
 */
public class RedisTest {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost",6379);

        int i = 0;
        try {
            long start = System.currentTimeMillis();
            while (true) {
                long end = System.currentTimeMillis();
                if (end - start >= 1000) {
                    break;
                }
                i++;
                jedis.set("test" + i, i + "");
            }
        } finally {
            jedis.close();
        }
        System.out.println("redis每秒操做:"+i+"次");
    }
}

结果如图:

书上做者的性能能够达到2万屡次,而个人只有几千次,每次运行结果都不同。能够是个人电脑太老了,没能体现redis真正的性能。数据库

相关文章
相关标签/搜索