准备工作
下载windows版的Redis(自行查找网络资源)
解压到指定文件夹
如图所示:Redis的目录结构
基于配置文件启动redis服务器
如果我们自定义了redis服务器的相关配置,例如最大连接数,数据库总数等,需要以指定配置文件的方式启动redis服务器,可以进行以下配置。
在redis的目录中新建一个文件startup.cmd,用记事本或其他文本编辑工具打开,然后写入以下内容:
双击这个cmd文件,启动redis服务器
显示redis服务器的基本信息,如端口(port:6379)等。
在Java程序中使用Redis
在Java中使用redis工具,要先下载jedis.jar包,把它加载到工厂的路径中,如果使用的maven项目,直接添加对应的依赖坐标即可。
pom.xml
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>
在测试类中连接redis测试
java">
/*** Unit test for simple App.*/
public class AppTest{@Testpublic void jedisTest(){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+"Jedis");}}finally {jedis.close();}System.out.println("redis每秒操作:"+i+"次");}}
以上代码的含义:
运行结果:
每个人的电脑的执行次数都是不同的,我这里显示的是我执行效果最好的一次,通常我的只有3万5千次。其实redis的速度不仅仅如此,比这快的多,这里较慢的原因是我们只是一条条地将命令发送给redis去执行。如果使用流水线技术它的速度回快得多,将可以达到10万次每秒的操作,十分有利于系统性能的提高。
可以看出redis的写数据的速度是非常快的:
本质原因有三点:
扩展
向MySQL数据库写数据
测试类
java">package com.csx;import com.csx.dao.UserDao;
import com.csx.entity.User;
import com.csx.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import redis.clients.jedis.Jedis;/*** Unit test for simple App.*/
public class AppTest{private SqlSession sqlSession= SqlSessionFactoryUtil.getSessionSql();@Testpublic void testMybatis(){UserDao userDao = sqlSession.getMapper(UserDao.class);int i=0;//记录次数long start = System.currentTimeMillis();while (true){long end = System.currentTimeMillis();if (end-start>=1000){break;}i++;User user =new User();user.setName("User"+i+"-vip");user.setAge(i);userDao.insertUser(user);}System.out.println("Mysql每秒操作:"+i+"次");}}
执行效果
可以看的出来mysql相比于redis,写入数据的效率低太多。因此mysql适合持久化数据,而redis通常用来作为缓存使用