2019独角兽企业重金招聘Python工程师标准>>>

需要jar包:

jedis-2.1.0.jar

commons-pool-1.6.jar

单元测试:

package com.wangbingan.db;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;import org.junit.Before;
import org.junit.Test;import com.wangbinga.util.RedisUtil;import redis.clients.jedis.Jedis;/*** Redis测试* * @author AK* */
public class RedisTest {private Jedis jedis;// private String name = "Usher";// private String age = "44";// private String sex = "male";/*** 测试用例启动前运行*/@Beforepublic void setup() {// 服务器ipString ip = "60.28.29.22";// 服务器端口int port = 6379;// 授权密码String password = "Ytw-2015#Ehsan";// 链接redis服务器jedis = new Jedis(ip, port);// 授权jedis.auth(password);}/*** String测试*/@Testpublic void stringTest() {// 添加数据jedis.set("name", "Usher");System.out.println("添加数据:" + jedis.get("name") + "\n");// 拼接数据jedis.append("name", "\040is very cool!");System.out.println("拼接数据:" + jedis.get("name") + "\n");// 删除数据jedis.del("name");System.out.println("删除数据:" + jedis.get("name") + "\n");// 设置多个数据jedis.mset("name", "Usher", "age", "24", "sex", "male");// 某个数据+jedis.incrBy("age", 10);System.out.println("姓名:" + jedis.get("name") + "\040年龄:"+ jedis.get("age") + "\040性别:" + jedis.get("sex") + "\n");}/*** Map测试*/@Testpublic void mapTest() {Map<String, String> map = new HashMap<String, String>();// 添加数据map.put("name", "Usher");map.put("age", "24");map.put("sex", "male");// 添加到redis中jedis.hmset("Information", map);System.out.println("添加Map数据:"+ jedis.hmget("Information", "name", "age", "sex") + "\n");// 删除数据jedis.hdel("Information", "name");System.out.println("删除Map数据:" + jedis.hmget("Information", "name")+ "\n");// 返回key=Information的值的个数System.out.println("返回key=Information的值的个数:"+ jedis.hlen("Information") + "\n");// 判断是否存在key=Information的对象System.out.println("判断是否存在key=Information的对象:"+ jedis.exists("Information") + "\n");// 返回map对象中的所有key值System.out.println("返回map对象中的所有key值:" + jedis.hkeys("Information")+ "\n");// 返回map对象中的所有value值System.out.println("返回map对象中的所有value值:" + jedis.hvals("Information")+ "\n");// 循环迭代keyIterator<String> it = jedis.hkeys("Information").iterator();// 判断是否有元素存在while (it.hasNext()) {// 获取元素keyString key = it.next();System.out.println("返回key为" + key + "的值:"+ jedis.hmget("Information", key) + "\n");}}/*** List测试*/@Testpublic void listTest() {// 先清空Listjedis.del("Information");// 查看List是否清空System.out.println("Lis[清空后]t:" + jedis.lrange("Information", 0, -1)+ "\n");// 添加数据jedis.lpush("Information", "Usher");jedis.lpush("Information", "sex");jedis.lpush("Information", "age");// 查看List元素System.out.println("List[添加后]:" + jedis.lrange("Information", 0, -1)+ "\n");// 清空Listjedis.del("Information");// 添加数据jedis.lpush("Information", "Elliot");jedis.lpush("Information", "sex");jedis.lpush("Information", "age");// 查看List元素System.out.println("List[清空+添加]:" + jedis.lrange("Information", 0, -1)+ "\n");}/*** set测试*/@Testpublic void setTest() {// 添加元素jedis.sadd("user", "Usher");jedis.sadd("user", "sex");jedis.sadd("user", "age");System.out.println("Key的value值[删除前]:" + jedis.smembers("user") + "\n");// 删除元素jedis.srem("user", "age");// 所有元素的value()System.out.println("Key的value值[删除后]:" + jedis.smembers("user") + "\n");// 判断值是否存在System.out.println("判断值是否存在:" + jedis.sismember("user", "age") + "\n");// 返回集合元素的个数System.out.println("返回集合元素的个数:" + jedis.scard("user") + "\n");// 返回随机元素System.out.println("返回随机元素:" + jedis.srandmember("user") + "\n");}/*** jedis 排序*/@Testpublic void sortTest() {// 添加元素jedis.rpush("sort", "1");jedis.lpush("sort", "2");jedis.lpush("sort", "3");jedis.lpush("sort", "4");System.out.println("元素:" + jedis.lrange("sort", 0, -1) + "\n");// 排序System.out.println("排序:" + jedis.sort("sort") + "\n");// jedis.sort("sort");// 再输出一次// System.out.println("元素:" + jedis.lrange("sort", 0, -1) + "\n");}/*** 测试中文*/@Testpublic void chineseTest() {RedisUtil.getJedis().set("name", "中文测试");System.out.println(RedisUtil.getJedis().get("name"));}
}

redis连接池:

package com.wangbinga.util;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;/*** Redis连接池* * @author AK* */
public final class RedisUtil {// Redis服务器IPprivate static String ADDR = "60.28.29.22";// Redis的端口号private static int PORT = 6379;// 访问密码private static String AUTH = "Ytw-2015#Ehsan";// 可用连接实例的最大数目,默认值为8;// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。private static int MAX_ACTIVE = 1024;// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。private static int MAX_IDLE = 200;// 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;private static long MAX_WAIT = 10000;// 最大延迟时间private static int TIMEOUT = 10000;// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;private static boolean TEST_ON_BORROW = true;private static JedisPool jedisPool = null;/*** 初始化Redis连接池*/static {try {JedisPoolConfig config = new JedisPoolConfig();config.setMaxActive(MAX_ACTIVE);config.setMaxIdle(MAX_IDLE);config.setMaxWait(MAX_WAIT);config.setTestOnBorrow(TEST_ON_BORROW);jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);} catch (Exception e) {e.printStackTrace();}}/*** 获取Jedis实例* * @return*/public synchronized static Jedis getJedis() {try {if (jedisPool != null) {Jedis resource = jedisPool.getResource();return resource;} else {return null;}} catch (Exception e) {e.printStackTrace();return null;}}/*** 释放jedis资源* * @param jedis*/public static void returnResource(final Jedis jedis) {if (jedis != null) {jedisPool.returnResource(jedis);}}
}

最上面的2个jar包很重要(版本o),因为redis的连接池有些方法在jedis-2.1.0才有,如果别的版本可能没有这个方法。

还有连接池操作的时候需要有commons-pool-1.6.jar这个包,因为第一次用java写连接池,所以不太懂,但是我觉得

只要用到连接池的地方,肯定会有这个包,哈哈,机智的我!

转载于:https://my.oschina.net/Tsher2015/blog/512919

Java中使用Jedis操作Redis相关推荐

  1. Java中使用Jedis操作Redis,java初级面试笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 参考 ...

  2. java中使用Jedis操作Redis实例

    要想在Java中连接Redis,并进行操作,由两种方式,一种是spring data redis,它是由spring集成的,不支持集群,一种是官方推荐的jedis,支持集群,其他功能差不多一样, 这里 ...

  3. Java中使用jedis操作redis(使用maven)

    jedis的使用 前言 一.简单使用示例 1.快速入门 2.操作五种数据格式 二.jedis连接池:jedisPool 1.示例 2.jedies详细配置 三.创建连接池工具类 1.jedis.pro ...

  4. java jedis使用_Java中使用Jedis操作Redis

    Java中使用Jedis操作Redis 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0 ...

  5. Java中使用Jedis连接Redis对SortedSet进行排序操作

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  6. Java中使用Jedis连接Redis对Hash进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  7. Java中使用Jedis连接Redis对Set进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  8. Java中使用Jedis连接Redis对List进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  9. Java中使用Jedis连接Redis对String进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

最新文章

  1. 小孩子如何学会语言?科学家使用计算机模型解释儿童语言学习过程
  2. 华为、北大、悉尼大学:最新视觉Transformer综述(2017-2020年)
  3. iOS开发之使用XMPPFramework实现即时通信(二)
  4. ORA-39095: Dump file space has been exhausted: Unable to allocate 8192 bytes
  5. Java黑皮书课后题第8章:*8.33(几何:多边形的子面积)一个具有四个顶点的凸多边形被分为4个三角形,编写一个程序,提示用户输入4个顶点的坐标,然后以升序显示四个三角形的面积
  6. CSS滤镜 【转载】
  7. linux系统编程:自己动手写一个who命令
  8. 连接数据库的方法---ODBC
  9. jar包在Hadoop集群上测试(MapReduce)
  10. 码匠编程:零基础自学WEB前端,从第一份工作5K到现在13K,学习经验分享
  11. .ashx接口单元测试
  12. 螺旋模型 增量模型_螺旋模型| 软件工程
  13. 什么是弱密码,如何避免
  14. java excel 边框颜色_java(jxl) 改变excel表格背景及边框
  15. python中摄氏度的符号咋打_linux下怎么方便的输入度数符号 °
  16. 高品质蓝牙耳机排行榜,值得入手的四款蓝牙耳机分享
  17. matlab声音信号调制-3种方法(附matlab代码)
  18. BZOJ1913: 信号覆盖 题解
  19. 如何知道国外流行哪款 App (榜单)
  20. 【8082端口被占用】

热门文章

  1. 结构体是否有默认的构造函数?(没有,如果需要,需要自己写)
  2. 牛客小白赛190615场
  3. “极致”神话和产品观念_转自“蜗窝科技”
  4. PAL算法原理及代码实现
  5. 转载:thread的六种状态
  6. 大学基础课程之重要性
  7. 在AD没有备份的情况下还原被删除的数据
  8. python条件控制语句要注意什么_关于Python条件控制怎么用?要注意什么?
  9. Hadoop Hive sql语法详解
  10. 我的android面试经历