第一:安装Redis
首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。
Redis的下载可以百度一下,或者打开下面的下载链接:
https://github.com/MSOpenTech/redis
也可以从我的百度网盘下载,下载链接:
http://pan.baidu.com/s/1pJmaZ71
Redis有Linux版本的也有Windows版本的,我们练习的话一般都是Win版,操作比较简单。下载之后,压缩文件里面有Win 32位的和Win 64位的两个版本,自己根据个人系统进行选择。
第二:解压文件,运行Redis服务
先说一下Redis解压之后我们看到的几个文件的作用:
redis-benchmark.exe:性能测试工具,可以用以模拟同时由N个客户端发送M个 SETS/GETS 查询 (有点像于 Apache 的ab 压力工具).
redis-check-aof.exe:更新日志检查工具
redis-check-dump.exe:本地数据库检查工具
redis-cli.exe:客户端工具
redis-server.exe:服务端工具
redis.conf: Redis的配置文件
其中,红色加粗的是我们经常用到的。
第三:启动Redis服务
两种启动方式:
① 进入到Redis所在目录,按住shift,右击,“在此处打开命令窗口”或者打开cmd,自己cd进去,不过这样比较麻烦
输入: redis-server.exe
这样的话我们的Redis服务就启动了,注意,不要关闭cmd窗口
另外,我们在启动Redis的时候可以给它指定参数文件,格式如下:
redis-server.exe 配置文件路径
例如:
redi-server.exe redis.conf
② 通过配置环境变量直接运行
具体的配置方法如下:
在“变量值”一栏写入你的Redis安装目录即可。配置好环境变量之后只要打开cmd,直接输入redis-server.exe就可以启动服务,就行不用cd的redis的安装目录执行了。
第四:编写java测试代码
①新建java项目
②导入redis包
Redis的jar包下载链接:
jedis-2.1.0.jar http://pan.baidu.com/s/1mgxCyvu
commons-pool-1.5.5.jar http://pan.baidu.com/s/1gdGd0Sb
③编写代码
1 packagecom.gf.redisdemo_2;2
3 importjava.text.SimpleDateFormat;4 importjava.util.ArrayList;5 importjava.util.Date;6 importjava.util.Iterator;7 importjava.util.List;8 importjava.util.Set;9
10 importredis.clients.jedis.Jedis;11 importredis.clients.jedis.JedisPool;12 importredis.clients.jedis.JedisPoolConfig;13 importredis.clients.jedis.JedisShardInfo;14 importredis.clients.jedis.ShardedJedis;15 importredis.clients.jedis.ShardedJedisPool;16
17 public classTestRedis {18
19 //声明
20 private Jedis jedis;//非切片额客户端连接
21 private ShardedJedis shardedJedis;//切片额客户端连接
22 private JedisPool jedisPool;//非切片连接池
23 private ShardedJedisPool shardedJedisPool;//切片连接池24
25 //构造
26 publicTestRedis() {27 initJedisPool();28 initSharededJedisPool();29 jedis=jedisPool.getResource();30 shardedJedis=shardedJedisPool.getResource();31 }32
33 //初始化SharededJedisPool
34 private voidinitSharededJedisPool() {35 //配置参数
36 JedisPoolConfig config=newJedisPoolConfig();37 config.setMaxActive(50);38 config.setMaxIdle(5);39 config.setMaxWait(2000l);40 config.setTestOnBorrow(true);41 JedisShardInfo jedisShardInfo=new JedisShardInfo("127.0.0.1", 6379);//地址,端口
42 List list=new ArrayList();43 list.add(jedisShardInfo);44 shardedJedisPool=newShardedJedisPool(config, list);45 }46
47 //初始化JedisPool
48 private voidinitJedisPool() {49 JedisPoolConfig config=newJedisPoolConfig();50 config.setMaxActive(50);51 config.setMaxIdle(5);52 config.setMaxWait(2000l);53 config.setTestOnBorrow(true);54 //此处配置与初始化SharededJedisPool用到的代码一样
55 jedisPool=new JedisPool(config, "127.0.0.1", 6379);56 }57
58 public voidshowInfo() {59 Date date=newDate();60 SimpleDateFormat sdf=new SimpleDateFormat("YYYY年MM月dd日 hh:mm:ss");61
62 System.out.println(">>>>>>>清空数据库:"+sdf.format(date));63 System.out.println(jedis.flushDB());64 System.out.println(">>>>>>>set:"+sdf.format(date));65 System.out.println(shardedJedis.set("name", "zhangsan"));66 System.out.println(">>>>>>>get:"+sdf.format(date));67 System.out.println(shardedJedis.get("name"));68
69 System.out.println(">>>>>>获取所有的键值:"+sdf.format(date));70 Set set=jedis.keys("*");71 Iterator iterator=set.iterator();72 while(iterator.hasNext()) {73 String key=iterator.next();74 System.out.println(key+",值:"+shardedJedis.get(key));75 }76 }77
78 public static voidmain(String[] args) {79 newTestRedis().showInfo();80 }81
82 }
可能刚开的时候对Jedis、ShardedJedis、JedisPool、SharededJedisPool的初始化顺序理不清,容易混乱,为此我们声明的时候就按照一定的规律去声明:
Jedis---ShardedJedis JedisPool----ShardJedisPool。
初始化图如下:
根据图示可以看出,我们要初始化Jedis、ShardedJedis就要先创建SharedJedis和ShardedJedisPool,于是有了initJedisPool()和initSharededJedisPool()方法
说明:如果你在启动Redis时使用了配置文件,并且在配置文件里面开启了登陆密码(查找redis.conf的“requirepass 密码”,把注释解掉),如果直接运行以上代码会看到一下错误信息:
们