使用java操作Redis需要jedis-2.1.0.jar,下载地址:jedis-2.1.0.jar

如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:commons-pool-1.5.4.jar package com.test;

import Java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.junit.Before;

import org.junit.Test;

import redis.clients.jedis.Jedis;

public class TestRedis {

private Jedis jedis;

@Before

public void setup() {

//连接redis服务器,192.168.0.100:6379

jedis = new Jedis("192.168.0.100", 6379);

//权限认证

jedis.auth("admin");

}

/**

* redis存储字符串

*/

@Test

public void testString() {

//-----添加数据----------

jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin

System.out.println(jedis.get("name"));//执行结果:xinxin

jedis.append("name", " is my lover"); //拼接

System.out.println(jedis.get("name"));

jedis.del("name"); //删除某个键

System.out.println(jedis.get("name"));

//设置多个键值对

jedis.mset("name","liuling","age","23","qq","476777XXX");

jedis.incr("age"); //进行加1操作

System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));

}

/**

* redis操作Map

*/

@Test

public void testMap() {

//-----添加数据----------

Map map = new HashMap();

map.put("name", "xinxin");

map.put("age", "22");

map.put("qq", "123456");

jedis.hmset("user",map);

//取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List

//第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数

List rsmap = jedis.hmget("user", "name", "age", "qq");

System.out.println(rsmap);

//删除map中的某个键值

jedis.hdel("user","age");

System.out.println(jedis.hmget("user", "age")); //因为删除了,所以返回的是null

System.out.println(jedis.hlen("user")); //返回key为user的键中存放的值的个数2

System.out.println(jedis.exists("user"));//是否存在key为user的记录 返回true

System.out.println(jedis.hkeys("user"));//返回map对象中的所有key

System.out.println(jedis.hvals("user"));//返回map对象中的所有value

Iterator iter=jedis.hkeys("user").iterator();

while (iter.hasNext()){

String key = iter.next();

System.out.println(key+":"+jedis.hmget("user",key));

}

}

/**

* jedis操作List

*/

@Test

public void testList(){

//开始前,先移除所有的内容

jedis.del("java framework");

System.out.println(jedis.lrange("java framework",0,-1));

//先向key java framework中存放三条数据

jedis.lpush("java framework","spring");

jedis.lpush("java framework","struts");

jedis.lpush("java framework","hibernate");

//再取出所有数据jedis.lrange是按范围取出,

// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有

System.out.println(jedis.lrange("java framework",0,-1));

jedis.del("java framework");

jedis.rpush("java framework","spring");

jedis.rpush("java framework","struts");

jedis.rpush("java framework","hibernate");

System.out.println(jedis.lrange("java framework",0,-1));

}

/**

* jedis操作Set

*/

@Test

public void testSet(){

//添加

jedis.sadd("user","liuling");

jedis.sadd("user","xinxin");

jedis.sadd("user","ling");

jedis.sadd("user","zhangxinxin");

jedis.sadd("user","who");

//移除noname

jedis.srem("user","who");

System.out.println(jedis.smembers("user"));//获取所有加入的value

System.out.println(jedis.sismember("user", "who"));//判断 who 是否是user集合的元素

System.out.println(jedis.srandmember("user"));

System.out.println(jedis.scard("user"));//返回集合的元素个数

}

@Test

public void test() throws InterruptedException {

//jedis 排序

//注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)

jedis.del("a");//先清除数据,再加入数据进行测试

jedis.rpush("a", "1");

jedis.lpush("a","6");

jedis.lpush("a","3");

jedis.lpush("a","9");

System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]

System.out.println(jedis.sort("a")); //[1, 3, 6, 9] //输入排序后结果

System.out.println(jedis.lrange("a",0,-1));

}

@Test

public void testRedisPool() {

RedisUtil.getJedis().set("newname", "中文测试");

System.out.println(RedisUtil.getJedis().get("newname"));

}

}

Redis连接池: package com.test;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

public final class RedisUtil {

//Redis服务器IP

private static String ADDR = "192.168.0.100";

//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;

/**

* 初始化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);

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

jedis操作set_Java中使用Jedis操作Redis的示例代码相关推荐

  1. python中延时函数_python中实现延时回调普通函数示例代码

    python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  2. Java EasyExcel在Web网站中读写Excel的方法及示例代码

    使用EasyExcel可以更容易简单在Web网站中读写Excel,本文主要介绍在Java Web网站中读写Excel方法及示例代码. 原文地址:Java EasyExcel在Web网站中读写Excel ...

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

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

  4. java8 流操作_java8中的流操作

    Stream 流是 Java 8 新提供给开发者的一组操作集合的 API,将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选.排序.聚合等.元素流在管道中经过 ...

  5. php 语言文件操作,php中目录文件操作详谈

    php中目录文件操作详谈 首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,以下是小编整理的php中目录,文件操作详谈,欢迎来 ...

  6. Java 使用EasyExcel读取Excel中多个sheet方法及示例代码

    本文主要介绍Java中,使用EasyExcel读取Excel文件中多个Sheet的方法,以及使用示例代码. 1.读取数据的实体对象 @Data public class DemoData {priva ...

  7. python中实现延时回调普通函数示例代码

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...

  8. ABOV单片机UART串口通讯中Printf函数实现讲解及示例代码-[MC96F6332D]

    一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口代码 1.在CodeGen8 代码生成器的外 ...

  9. selenium ie 操作cookie_Python3中selenium 怎么操作Cookie?

    webdriver提供了操作Cookie的相关方法,可以读取,添加和删除cookie信息. webdriver操作cookie()的方法: get_cookie(): 获得所有cookie信息. ge ...

最新文章

  1. Netty实现心跳机制与断线重连
  2. 读书笔记:如何投论文
  3. linux将访问日志切成每天,最简单自动切割 nginx 访问日志示例
  4. vscode 语法检查_Jenkins 声明式流水线的语法错误检查
  5. c语言计算24游戏,C语言解24点游戏程序
  6. [C++] - 面向对象-院校管理系统
  7. 递归方式计算一个数的几次方
  8. Win10 开机密码破解
  9. 串级控制MATLAB实验报告,串级控制系统实验报告.docx
  10. 为什么大多数程序员没有工程思维
  11. 数据库修改用友U8账套
  12. html平板电脑打不开,平板电脑浏览器打不开网页
  13. 关于yd ui 移动端自适应的方案
  14. java 递归算法N的乘阶
  15. 【Python网络编程】爬取百度贴吧、小说内容、豆瓣小说、Ajax爬微博、多线程爬淘宝
  16. 微信公众号扫一扫功能vue配置
  17. Matlab样条工具箱(Spline ToolBox)与曲线拟合
  18. SpringBoot中业务层标准开发和快速开发(大全)
  19. MEMC插帧技术及屏幕分辨率的各种别称:VGA、WVGA、QHD、UHD、360P、720P、2K、4K
  20. css新特性:线性渐变详解(重复性线性渐变、径向渐变、重复性径向渐变的使用)

热门文章

  1. 第二章 序列比对——Needleman-Wunsch全局比对
  2. Assembly--软件PBcR和Canu
  3. java程序设计pdf下载_Java程序设计(迟立颖) PDF扫描版[21MB]
  4. tf.keras.activations.sigmoid 激活函数 示例
  5. sklearn 归一化 和 标准化
  6. Unity Remote使用方法
  7. Caffe 中的卷积--权宜之计
  8. LeetCode 426. Convert Binary Search Tree to Sorted Doubly Linked List--转换二叉树为双向链表--Java,C++,Python解法
  9. Open vSwitch(OVS)版本与Linux内核的关系
  10. android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...