Java操作redis简单示例
第一:安装 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 package com.gf.redisdemo_2; 2 3 import java.text.SimpleDateFormat; 4 import java.util.ArrayList; 5 import java.util.Date; 6 import java.util.Iterator; 7 import java.util.List; 8 import java.util.Set; 9 10 import redis.clients.jedis.Jedis; 11 import redis.clients.jedis.JedisPool; 12 import redis.clients.jedis.JedisPoolConfig; 13 import redis.clients.jedis.JedisShardInfo; 14 import redis.clients.jedis.ShardedJedis; 15 import redis.clients.jedis.ShardedJedisPool; 16 17 public class TestRedis { 18 19 //声明 20 private Jedis jedis;//非切片额客户端连接 21 private ShardedJedis shardedJedis;//切片额客户端连接 22 private JedisPool jedisPool;//非切片连接池 23 private ShardedJedisPool shardedJedisPool;//切片连接池 24 25 //构造 26 public TestRedis() { 27 initJedisPool(); 28 initSharededJedisPool(); 29 jedis=jedisPool.getResource(); 30 shardedJedis=shardedJedisPool.getResource(); 31 } 32 33 //初始化 SharededJedisPool 34 private void initSharededJedisPool() { 35 //配置参数 36 JedisPoolConfig config=new JedisPoolConfig(); 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<JedisShardInfo> list=new ArrayList<JedisShardInfo>(); 43 list.add(jedisShardInfo); 44 shardedJedisPool=new ShardedJedisPool(config, list); 45 } 46 47 //初始化 JedisPool 48 private void initJedisPool() { 49 JedisPoolConfig config=new JedisPoolConfig(); 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 void showInfo() { 59 Date date=new Date(); 60 SimpleDateFormat sdf=new SimpleDateFormat("YYYY 年 MM 月 dd 日 hh🇲🇲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<String> set=jedis.keys("*"); 71 Iterator<String> 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 void main(String[] args) { 79 new TestRedis().showInfo(); 80 } 81 82 }
可能刚开的时候对 Jedis、ShardedJedis、JedisPool、SharededJedisPool 的初始化顺序理不清,容易混乱,为此我们声明的时候就按照一定的规律去声明:
Jedis---ShardedJedis JedisPool----ShardJedisPool。
初始化图如下:
根据图示可以看出,我们要初始化 Jedis、ShardedJedis 就要先创建 SharedJedis 和 ShardedJedisPool,于是有了 initJedisPool()和 initSharededJedisPool() 方法
说明:如果你在启动 Redis 时使用了配置文件,并且在配置文件里面开启了登陆密码(查找 redis.conf 的“requirepass 密码”,把注释解掉),如果直接运行以上代码会看到一下错误信息:
们