小夜埙
路很长,要耐心,慢慢走!

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

Redis简介

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

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

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

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

Redis在javaweb中的应用

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

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

Redis的安装和使用

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

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

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

这样就安装好了redis。

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

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真正的性能。

posted on 2017-10-11 13:26  小夜埙  阅读(1351)  评论(0编辑  收藏  举报