设为首页 收藏本站
查看: 1485|回复: 0

[经验分享] Java操作redis简单示例

[复制链接]

尚未签到

发表于 2015-7-22 09:40:21 | 显示全部楼层 |阅读模式
  第一:安装Redis
    首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。
    Redis的下载可以百度一下,或者打开下面的下载链接:
    https://github.com/MSOpenTech/redis
  也可以从我的百度网盘下载,下载链接:
    http://pan.baidu.com/s/1pJmaZ71
    Redis有Linux版本的也有Windows版本的,我们练习的话一般都是Win版,操作比较简单。下载之后,压缩文件里面有Win 32位的和Win 64位的两个版本,自己根据个人系统进行选择。
  第二:解压文件,运行Redis服务
             DSC0000.jpg
DSC0001.jpg
  
  先说一下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进去,不过这样比较麻烦
DSC0002.jpg
    输入: redis-server.exe
DSC0003.jpg
    这样的话我们的Redis服务就启动了,注意,不要关闭cmd窗口
  另外,我们在启动Redis的时候可以给它指定参数文件,格式如下:
        redis-server.exe 配置文件路径
    例如:
        redi-server.exe redis.conf
    ② 通过配置环境变量直接运行
        具体的配置方法如下:
            DSC0004.jpg
DSC0005.jpg
  
            
  在“变量值”一栏写入你的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 list=new ArrayList();
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: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 void main(String[] args) {
79         new TestRedis().showInfo();
80     }
81
82 }
  
  
可能刚开的时候对Jedis、ShardedJedis、JedisPool、SharededJedisPool的初始化顺序理不清,容易混乱,为此我们声明的时候就按照一定的规律去声明:
  Jedis---ShardedJedis        JedisPool----ShardJedisPool。
  初始化图如下:
    DSC0006.jpg
  根据图示可以看出,我们要初始化Jedis、ShardedJedis就要先创建SharedJedis和ShardedJedisPool,于是有了initJedisPool()和initSharededJedisPool()方法
  
说明:如果你在启动Redis时使用了配置文件,并且在配置文件里面开启了登陆密码(查找redis.conf的“requirepass 密码”,把注释解掉),如果直接运行以上代码会看到一下错误信息:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89344-1-1.html 上篇帖子: Redis附加功能之Redis流水线pipeline 下篇帖子: Redis数据库?-Redis的Virtual Memory介绍(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表