Java操作Redis需要导入两个jar:
  •   commons-pool2-2.4.2.jar
  •   jedis-2.1.0.jar
package com.chinasofti.test;

import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger; import org.junit.Before;
import org.junit.Test; import redis.clients.jedis.Jedis; /**
* Java连接Redis测试
* @author liuhl
*
*/
public class ConnRedis { Jedis jedis; @Before
public void init(){
jedis = new Jedis("localhost", 6379, 30);
jedis.auth("admin");
} /**
* 测试Redis对字符串的操作
* set():添加一个新字符串
* append():向已有的key所对应的value上面追加值
* del():删除某个键
* mset():设置多个键值对
* incr(k):对该可以进行+1操作
* @author liuhl
*/
@Test
public void testRedisString(){
jedis.set("username", "sMith kevens");
jedis.append("username", "是Redis开发者");
System.out.println(jedis.get("username")+"------------");
//删除某个键
jedis.del("date");
System.out.println(jedis.get("date")+"======");
//设置多个键值对
jedis.mset("nicheng","shubiao","QAge","3","QQnumber","906058683","sex","man");
jedis.incr("QAge");//进行+1操作
System.out.println(jedis.get("nicheng")+":"+jedis.get("QAge")+":"+jedis.get("QQnumber")+":"+jedis.get("sex"));
} /**
* Redis对List的操作
* llen():获取列表size
* lpush():向列表左侧插入元素
* rpush():向列表右侧插入元素
* lrange("",0,-1):获取列表所有元素
* @author liuhl
*/
@Test
public void testRedisList(){
//开始前先移除所有的内容
jedis.del("javaframe work");
System.out.println(jedis.lrange("java framework", 0, -1));
//定义列表frame work,并向其中添加三条数据
jedis.lpush("javaframe work", "struts2");
jedis.lpush("javaframe work", "spring");
jedis.lpush("javaframe work", "hibernate");
System.out.println(jedis.llen("javaframe work")+"个");
System.out.println(jedis.lrange("javaframe work", 0, -1)); //向列表右侧添加元素
jedis.rpush("javaframe work", "ibatis");
jedis.rpush("javaframe work", "mybatis");
jedis.rpush("javaframe work", "springmvc");
System.out.println(jedis.lrange("javaframe work", 0, -1));
} /**
*Jedis操作无序列表(Set)
*sadd():向无序列表插入元素
*smembers():获取所有加入的value
*srem():移除
*sismember():判断一个值是不是某个集合的元素,返回boolean
*scard():返回集合元素的个数
*srandmember():返回集合中的一个随机元素
*@author liuhl
*@return void
*@category
*/
@Test
public void testRedisSet(){
//向无序集合插入元素
jedis.sadd("user", "yanbao");
jedis.sadd("user", "chengyi");
jedis.sadd("user", "fanwei");
//移除
jedis.srem("user", "chengyi");
System.out.println(jedis.smembers("user"));
System.err.println(jedis.sismember("user", "yunfei"));
System.out.println(jedis.scard("user"));
System.out.println(jedis.srandmember("user"));
} /**
* 测试列表排序sort
* redis:Lists是双向链表
* 排序前先清掉列表,后添加数据测试
* @exception InterruptedException:检查异常
* @author liuhl
*/
@Test
public void testListSort() throws InterruptedException{
jedis.del("arr");
jedis.lpush("arr", "4");
jedis.lpush("arr", "78");
jedis.lpush("arr", "2");
jedis.lpush("arr", "9");
jedis.lpush("arr", "7");
jedis.rpush("arr", "120");
jedis.rpush("arr", "91");
jedis.rpush("arr", "88");
jedis.rpush("arr", "31");
jedis.rpush("arr", "10");
System.out.println("排序前:"+jedis.lrange("arr", 0, -1));
System.out.println("排序后:"+jedis.sort("arr")); } /**
*
* 测试redis有序集合
* com.chinasofti.test
* 方法名:testRedisShortZset
* 创建人:liuhl
* 时间:2017-4-5-上午10:15:33
* return: void
* @exception
* @since 1.0.0
* zadd():向有序集合(sorts zsets)中插入一个元素
* zrange():仅列出所有的元素值。
*/
@Test
public void testRedisShortZset(){
//向有序集合sorts sets插入元素
jedis.zadd("lhlzset", 6, "http://localhost:8080");
jedis.zadd("lhlzset", 6, "sort");
//只列出有序集合的元素
System.out.println(jedis.zrange("lhlzset", 0, -1));
System.out.println(jedis.zrangeByScore("lhlzset", 0, 6)); } /**
*
* 测试hashs哈希
* com.chinasofti.test
* 方法名:testHashs
* 创建人:liuhl
* 时间:2017-4-6-上午9:46:04
* return: void
* @exception
* @since 1.0.0
* hmset():建立hashs并赋值
* hmget():列出hashs相关
*/
@Test
public void testHashs(){
//建立hashs并赋值
Map<String, String> map = new HashMap<>();
map.put("首都", "北京");map.put("河南", "洛阳");map.put("陕西", "西安");
jedis.hmset("china", map);
//列出hashs的内容
System.out.println(jedis.hmget("china", "河南")); }
}
package com.chinasofti.test;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; /**
* Redis连接池
*
* @author Administrator
*
*/
public class RedisUtils { // Redis服务器IP
private static String ADDR = "127.0.0.1";
// redis端口号
private static int PORT = 6379;
// 访问密码
private static String AUTH = "admin";
/**
* 可用连接实例的最大数目,默认为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 int 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;
// 初始化连接池
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);
// 注释的这两行为jdk版本问题导致,可忽略
} catch (Exception e) {
e.printStackTrace();
}
} /**
* 获取redis实例
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis jedis = jedisPool.getResource();
return jedis;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
} /**
*
* @param jedis
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedisPool.returnResource(jedis);// 关闭操作已经在此处处理了
}
} }

Java使用Jedis操作Redis大全的更多相关文章

  1. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

  2. Java中Jedis操作Redis与Spring的整合

    Redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop. ...

  3. Java通过jedis操作redis(增删改查)

    package sgh.main.powersite; import java.util.ArrayList; import java.util.HashMap; import java.util.I ...

  4. Java通过jedis操作redis缓存

    package com.wodexiangce.util; import java.util.Set; import redis.clients.jedis.Jedis; /** * redis工具类 ...

  5. java客户端Jedis操作Redis Sentinel 连接池

    pom配置: <dependency> <groupId>org.springframework.data</groupId> <artifactId> ...

  6. jedis操作redis的几种常见方式总结

    Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...

  7. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. Jedis操作Redis数据库

    添加Maven依赖: <dependencies> <!-- 单元测试 --> <dependency> <groupId>junit</grou ...

随机推荐

  1. 影响Arcmap运行效率的因素

    在使用ArcMap的过程中,总觉得ArcMap运行起来非常慢,目前发现了两点原因: 一.渲染太多图斑 比较常见的,我们在打开矢量图层时,Arcmap会自动渲染加载进去的图斑,进行符号化.在渲染的过程中 ...

  2. flask 数据库迁移的简单操作

    1.目的:修改现有数据库的表结构,不改变数据库中现有的数据. 2.导包:from flask_migrate import Migrate, MigrateCommandfrom flask_scri ...

  3. js date 和 math

    Math 用于执行常用的数学任务 console.log(Math.E); 自然数底数2.718 console.log(Math.PI); 圆周率3.1415926 console.log(Math ...

  4. Jump跳板机的搭建和部署

    Jump跳板机简绍   概括 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. Jumpserver ...

  5. 渗透测试学习 四、 HTML基础

    HTML是一种解释型语言,解释给浏览器解析执行显示给用户浏览,是一种静态,无交互的 超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用.HTML 不是 ...

  6. python画高斯分布图形

    高斯分布,也叫正态分布,是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率 ...

  7. mysql trigger 备忘

    最近用mysql有这么一个需求 item表:id,item,url,websiteid website表:id,domain item表示从不同网站获取的信息 website表示获得信息的网站,其中的 ...

  8. jmeter简单的接口性能测试

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...

  9. BUAA-OO第一单元小结

    引言 四周过去了,oo课程的第一阶段作业也算告一段落.在第一单元的内容中,主题是始终如一的多项式求导,但三次作业要求完善的求导功能一次比一次丰富,难度也逐渐增加,也是费了不少心思.接下来就回顾与小结一 ...

  10. canvas绘图——根据鼠标位置进行缩放的实现原理

    以任一点 A 缩放的基本原理: A 点为鼠标位置,正常放大是以原点放大,那么放大后 A 点就会变到 A1 点的位置 x1, y1.然后再将画布进行位移,将 A1 的位置移动到 A,则完成以 A 点缩放 ...