订阅博客
收藏博客
微博分享
QQ空间分享

【缓存学习】Java客户端对Redis的简单实用

频道:技术分享 标签:菜鸟程序员缓存相关学习 时间:2016年04月05日 浏览:2117次 评论:0条

前面的几篇文章中有讲述在centos中对【Redis的介绍以及安装】http://cuiyongzhi.com/index.php/post/61.html 以及【Redis启动项Config的配置】http://cuiyongzhi.com/index.php/post/62.html,因为我个人是一个菜鸟级别的Java程序员,所以在这里带来的就是在Java中对Redis的基本操作!

1.png

开始在Java中使用 Redis 前,我们需要确保已经安装了 redis 服务并处于开启状态(如上图)及 Java redis 驱动,redis的依赖可以到这里下载:http://pan.baidu.com/s/1kVhGTPd ,同时需要将我们下载的jar包导入到我们的java项目中,这里我就是新建的一个简单的java项目测试的,首先让我们从java连接Redis服务开始吧,同时之前我们有说道Redis是支持多数据类型的,所以在这里我们可以尝试多数据类型的存储和读取操作!

①Java连接到Redis服务

package com.cuiyongzhi.redis;

import redis.clients.jedis.Jedis;

/**
 * ClassName: RedisJava
 * @Description: redis 连接测试
 * @author dapengniao
 * @date 2016年4月5日 下午10:35:11
 */
public class RedisJava {
   public static void main(String[] args) {
      //连接本地的 Redis 服务
      Jedis jedis = new Jedis("192.168.192.128");//这里写入你自己的redis服务ip即可
      System.out.println("Connection to server sucessfully");
      //查看服务是否运行
      System.out.println("Server is running: "+jedis.ping());
 }
}

运行以上代码如果redis服务是开启并且连接成功的话会如下所展示:

2.png

②Redis存储读取String(字符串) 实例

package com.cuiyongzhi.redis;

import redis.clients.jedis.Jedis;
/**
 * ClassName: RedisStringJava
 * @Description: Redis Java String 实例
 * @author dapengniao
 * @date 2016年4月5日 下午10:39:56
 */
public class RedisStringJava {
   public static void main(String[] args) {
      //连接本地的 Redis 服务
      Jedis jedis = new Jedis("192.168.192.128"); //redis服务机器ip
      System.out.println("Connection to server sucessfully");
      //设置 redis 字符串数据
      jedis.set("dapengniao", "cuiyongzhi");
     // 获取存储的数据并输出
     System.out.println("Stored string in redis:: "+ jedis.get("dapengniao"));
 }
}

以上代码通过set的方法将key为dapengniao、value为cuiyongzhi的String类型键值对存入到redis中,后面采用get方法通过key获取并输出,最终结果如下:

3.png

③Redis存储读取List(列表) 实例

package com.cuiyongzhi.redis;

import java.util.List;

import redis.clients.jedis.Jedis;
/**
 * ClassName: RedisListJava
 * @Description: Redis Java List(列表) 实例
 * @author dapengniao
 * @date 2016年4月5日 下午10:46:22
 */
public class RedisListJava {
   public static void main(String[] args) {
      //连接本地的 Redis 服务
      Jedis jedis = new Jedis("192.168.192.128");//redis服务机器ip
      System.out.println("Connection to server sucessfully");
      //存储数据到列表中
      jedis.lpush("tutorial-list", "Redis");
      jedis.lpush("tutorial-list", "Mongodb");
      jedis.lpush("tutorial-list", "Mysql");
     // 获取存储的数据并输出
     List<String> list = jedis.lrange("tutorial-list", 0 ,5);
     for(int i=0; i<list.size(); i++) {
       System.out.println("Stored string in redis:: "+list.get(i));
     }
 }
}

上面示例②中存入和输出的是String字符串,为了展示redis的支持存储的多样性,所以这里我展示的是对列表List的存储和获取,最终运行结果如下:

4.png

④Redis读取所有Keys 实例

package com.cuiyongzhi.redis;

import java.util.HashMap;
import java.util.List;
import java.util.Set;

import redis.clients.jedis.Jedis;
/**
 * ClassName: RedisKeyJava
 * @Description: Redis Java Keys 实例
 * @author dapengniao
 * @date 2016年4月5日 下午10:52:11
 */
public class RedisKeyJava {
	public static void main(String[] args) {
		// 连接本地的 Redis 服务
		Jedis jedis = new Jedis("192.168.192.128");//redis服务机器ip
		System.out.println("Connection to server sucessfully");
		// 获取数据并输出
		Set<String> list = jedis.keys("*");
		System.out.println(list.toString());
		for (String key : list) {
			if(key.contains("list")){ //对key值做区分,因为list和string的取值方法有所区别(其他类型也需要参照对应方法),其实平时我们对redis做存储的时候都会有头部表示存储用途
				 List<String> lists = jedis.lrange("list", 0 ,5);
			     for(int i=0; i<lists.size(); i++) {
			       System.out.println("Stored list in redis:: "+lists.get(i));
			     }
			}else{
			String value=jedis.get(key);
			System.out.println("Stored string in redis:: "
					+ value);
			}
		}
	}
}

这里的方法做了几件事情:①查找redis里面所有存在的key;②对key对应的值做类型区分;③取出key对应的value值输出;在这里值得注意的是②③两步,在代码中也有注释,需要注意的就是对value类型不同采用不同的取值方式,最终可以看到现在在我redis缓存了那些数据如下:

5.png

到这里简单的java for redis的用法就有了一个了解,期望随着我的个人能力的深入也能为大家带来更好的文章,最后感谢你的翻阅,如有疑问可以留言一起交流讨论!

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信