/Users/sherry/WorkPath/Git/Web/redisDemo/src/main/java/org/zln/utils/JedisUtils.java

package org.zln.utils;

import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; /**
* Created by sherry on 16/9/13.
*/
public class JedisUtils { private static Logger logger = LogManager.getLogger();
private static JedisPool pool = null; private static final String URL = "127.0.0.1";
private static final int PORT = 6379; private static Jedis jedis = null;
static {
pool = new JedisPool(new JedisPoolConfig(), URL,PORT); } public static Jedis getRedisCon(String password){
jedis = pool.getResource();
if (StringUtils.isNotEmpty(password)){
logger.info("以密码:"+password+" 登陆 redis");
jedis.auth(password);
}
logger.info(jedis.ping());
return jedis;
} public static void closeRedisCon(Jedis jedis){
if (jedis!=null){
jedis.close();
}
} public static void closeApp(){
//关闭应用程序的时候执行
pool.destroy();
} }

/Users/sherry/WorkPath/Git/Web/redisDemo/src/main/java/org/zln/main/JedisMain.java

package org.zln.main;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.zln.utils.JedisUtils;
import redis.clients.jedis.Jedis; import java.io.*;
import java.util.*; /**
* Created by sherry on 16/9/13.
*/
public class JedisMain { private static Logger logger = LogManager.getLogger(); public static void main(String[] args) {
Jedis jedis = JedisUtils.getRedisCon("");
// stringTest(jedis);
//
// listTest(jedis);
//
// mapTest(jedis);
//
// objTest(jedis); objListTest(jedis);
// 将这个Jedis实例归还给JedisPool。
JedisUtils.closeRedisCon(jedis); } /**
* 对象列表
* @param jedis
*/
private static void objListTest(Jedis jedis) {
Person person1 = new Person("name1",1);
Person person2 = new Person("name2",2);
Person person3 = new Person("name3",3);
Person person4 = new Person("name4",4); List<Person> persons = new ArrayList<>();
persons.add(person1);
persons.add(person2);
persons.add(person3);
persons.add(person4); try {
for (Person person:persons){
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(person);
byte [] byteArray = bos.toByteArray();
oos.close();
bos.close(); logger.info("写入对象:"+person);
jedis.lpush("persons".getBytes(),byteArray);
} List<byte[]> personsBytes = jedis.lrange("persons".getBytes(),0,10);
for (byte[] bs:personsBytes){
ByteArrayInputStream bis = new ByteArrayInputStream(bs); ObjectInputStream inputStream = new ObjectInputStream(bis); Person readObject = (Person) inputStream.readObject(); logger.info( " 读取对象 \t" + readObject.toString()); inputStream.close(); bis.close();
} } catch (IOException|ClassNotFoundException e) {
e.printStackTrace();
} jedis.del("persons".getBytes()); } /**
* 存储对象
* @param jedis
*/
private static void objTest(Jedis jedis) { Person person = new Person();
person.setAge(27);
person.setName("卡卡卡"); ByteArrayOutputStream bos = new ByteArrayOutputStream(); try {
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(person); byte [] byteArray = bos.toByteArray();
oos.close();
bos.close(); String setObjectRet = jedis.set(person.getName().getBytes(), byteArray); logger.info( " set object return \t" + setObjectRet); byte [] bs = jedis.get( person.getName().getBytes()); ByteArrayInputStream bis = new ByteArrayInputStream(bs); ObjectInputStream inputStream = new ObjectInputStream(bis); Person readObject = (Person) inputStream.readObject(); logger.info( " read object \t" + readObject.toString()); inputStream.close(); bis.close(); } catch (IOException|ClassNotFoundException e) {
e.printStackTrace();
} jedis.del(person.getName());
} /**
* 存储 Map
* @param jedis
*/
private static void mapTest(Jedis jedis) {
Map<String,String> user = new HashMap<String,String>();
user.put( "name" , "cd" );
user.put( "password" , "123456" ); jedis.hmset("user",user);
// mapkey 个数
System.out.println(String.format ( "len:%d" , jedis.hlen( "user" )));
//map中的所有键值
System.out.println(String.format ( "keys: %s" , jedis.hkeys( "user" ) ));
//map中的所有value
System.out.println(String.format ( "values: %s" , jedis.hvals( "user" ) ));
//取出map中的name字段值
List<String> rsmap = jedis.hmget( "user" , "name" , "password" );
System.out.println(rsmap);
//删除map中的某一个键值 password
jedis.hdel( "user" , "password" );
System.out.println(jedis.hmget( "user" , "name" , "password" )); jedis.del("user");
} /**
* 存储列表
* @param jedis
*/
private static void listTest(Jedis jedis) {
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));
}
jedis.del("tutorial-list");
} /**
* 存储字符串
* @param jedis
*/
private static void stringTest(Jedis jedis) {
//一次次添加
jedis.set("string1","一号字符串");
jedis.set("string2","二号字符串");
jedis.set("string3","三号字符串");
jedis.set("string4","四号字符串"); logger.info("获取string1:"+jedis.get("string1"));
//在已有 key 上,对 value 进行新增
jedis.append("string1","添加新字符串");
logger.info("获取string1:"+jedis.get("string1")); //一次性添加多个键值对
jedis.mset("s1","v1","s2","v2","s3","v3");
logger.info("获取s1:"+jedis.get("s1")); for (Iterator<String> iterator = jedis.keys("*").iterator();iterator.hasNext();){
String key = iterator.next();
logger.info(key+":"+jedis.get(key));
jedis.del(key);
} }
}

最新文章

  1. java实现甘特图的2种方法:SwiftGantt和Jfree (转)
  2. 使用共享网卡的NAT模式配置VMware中的CentOS的上网功能
  3. SqlServer2008R2附件数据库失败
  4. Sunrise Release Version History
  5. Youth(青春)
  6. PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
  7. 简单的CSS 下拉导航菜单实现代码
  8. openssl对数组加密解密的完整实现代码
  9. Cygwin编译自己定义OpenCV库报错:opencv_contrib: LOCAL_SRC_FILES points to a missing file
  10. Swift数组的存取与修改
  11. mshta 反弹shell
  12. 画一个DIV并给它的四个角变成圆形,且加上阴影
  13. python ftp批量上传文件下载文件
  14. Vue学习——学习vue必须了解的几个知识点
  15. runners
  16. SQL 的单引号转义字符
  17. 《Head First 设计模式》例子的C++实现(2 观察者模式)
  18. 当前上下文中不存在viewbag
  19. linux 下NFS远程目录挂载
  20. mqtt Qos

热门文章

  1. How to Use Telnet to Test SMTP Communication
  2. 使用Kindle4rss推送自己感兴趣的博文
  3. 数组拷贝 copyOf()
  4. Hibernate学习0.Hibernate入门
  5. Python基础(2)--对象类型
  6. PAT 01-2
  7. Swift中的字典
  8. FFT教你做乘法(FFT傅里叶变换)
  9. [独孤九剑]持续集成实践(二)– MSBuild语法入门
  10. 怎样查看linux版本