IDEA连接Redis
1、创建一个Maven项目



2、在src下的pom.xml文件里,添加相关包引用
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.otwb</groupId>
<artifactId>redisLink</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!--用于单元测试的包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--mysql数据库的jdbc驱动包:用于连接mysql数据库-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<!--redis数据库的连接驱动包-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!--数据库工具包:用于操作数据库-->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.5</version>
</dependency>
<!--对象池驱动包:用于存放我们需要池化的对象,如创建redis数据库连接池-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.5.0</version>
</dependency>
<!--c3p0数据库连接池包-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
</dependencies> </project>

3、创建redis连接池工具包
package utils; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; public class RedisUtils {
//服务器IP地址
private static String ADDR = "43.109.234.69";
//端口
private static int PORT = 6379;
//连接超时的时间
private static int TIMEOUT = 10000;
//密码
private static String AUTH = "123";
//数据库模式是16个数据库(0~15),这里设置第一个为默认数据库
public static final int DEFAULT_DATABASE = 0;
//连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
private static int MAX_IDLE = 200;
//等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
private static int MAX_WAIT = 10000;
//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
private static boolean TEST_ON_BORROW = true;
//创建一个redis数据库连接池
private static JedisPool jedisPool = null; //初始化Redis连接池(静态代码块)
static {
try {
//新建连接池的配置参数
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//指定连接实例的最大连接数
jedisPoolConfig.setMaxTotal(MAX_ACTIVE);
//指定一个pool最多有多少个状态为idle(空闲的)的jedis实例
jedisPoolConfig.setMaxIdle(MAX_IDLE);
//指定等待可用连接的最大时间,单位毫秒
jedisPoolConfig.setMaxWaitMillis(MAX_WAIT);
//在borrow一个jedis实例时,是否提前进行validate操作
jedisPoolConfig.setTestOnBorrow(TEST_ON_BORROW);
//初始化Redis连接池
jedisPool = new JedisPool(jedisPoolConfig, ADDR, PORT, TIMEOUT,AUTH,DEFAULT_DATABASE);
//jedisPool = new JedisPool(jedisPoolConfig, ADDR, PORT);
} catch (Exception e) {
e.printStackTrace();
}
} //获取Jedis实例
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis jedis = jedisPool.getResource();
System.out.println("redis--服务正在运行: "+jedis.ping());
return jedis;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
} //释放资源
public static void returnResource(final Jedis jedis) {
if(jedis != null) {
jedisPool.returnResource(jedis);
}
}
}
4、在src——main——java下添加RedisLinkTest类,测试连接操作Redis数据库
import org.junit.Test;
import redis.clients.jedis.Jedis;
import utils.RedisUtils; import java.util.Iterator;
import java.util.List;
import java.util.Set; public class RedisLinkTest {
//@Test表示这个方法是单元测试的方法
//连接并添加String类型数据
@Test
public void fun1() {
//直接连接redis数据库
Jedis jedis = new Jedis("43.109.234.69",6379);
//设置连接密码
jedis.auth("123");
//添加String类型数据
jedis.set("field1","i am field1");
//输出添加的数据(根据键,输出对应的值)
System.out.println(jedis.get("field1"));
//删除String类型数据(根据键删除)
jedis.del("field1");
//输出数据,查看是否删除成功
System.out.println(jedis.get("field1"));
} //连接并添加hash类型数据(我理解为给String类型的数据进行了分类,每个hash可以存储2^32-1个键值对)
@Test
public void fun2(){
//通过连接池方式连接redis数据库
Jedis jedis = RedisUtils.getJedis();
//添加hash类型数据
jedis.hset("hset1","name","张三");
jedis.hset("hset1","age","22");
jedis.hset("hset1","sex","男");
//获取数据
List<String> hmget = jedis.hmget("hset1", "name","age","sex");
//输出
System.out.println(hmget);
//删除
jedis.hdel("hset1","name","sex");
//删除后再输出,看看是否删除成功
System.out.println(jedis.hmget("hset1", "name","age","sex"));
RedisUtils.returnResource(jedis);
} //连接并添加List类型数据(队列,按照插入顺序排序,可以添加一个元素到列表的头部(左边),或者尾部(右边))
@Test
public void fun3() {
//通过连接池方式连接redis数据库
Jedis jedis = RedisUtils.getJedis();
//添加List类型数据,lpush添加到列表头部,即后添加的数据在最前面
jedis.lpush("field2","aaa");
jedis.lpush("field2","bbb");
jedis.lpush("field2","ccc");
//从索引1的位置获取到索引6位置的值,因为超出了实际索引2,所以后面会继续循环输出
List<String> field2 = jedis.lrange("field2", 0, 6);
//输出添加的键值对
for(String item:field2){
System.out.println(item);
}
RedisUtils.returnResource(jedis);
} //连接并添加Set类型数据(一堆不重复值的组合)
@Test
public void fun4(){
//通过连接池方式连接redis数据库
Jedis jedis = RedisUtils.getJedis();
//添加Set类型数据
jedis.sadd("name","zhangsan");
jedis.sadd("name","lisi");
jedis.sadd("name","lisi"); //同一个数据再次添加,会覆盖上一次的
jedis.sadd("age","16");
jedis.sadd("sex","nan");
jedis.sadd("address","china");
//获取Set类型数据
Set<String> name = jedis.smembers("name");
//输出获取到的Set类型数据(输出的顺序是无序的)
System.out.println(name);
System.out.println("\n");
//获取当前redis数据库中,所有key,以Set集合的方式返回数据
Set<String> set = jedis.keys("*");
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
RedisUtils.returnResource(jedis);
} //连接并添加ZSet类型数据(zset是set的升级版,它在set的基础上增加了顺序属性score,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序)
@Test
public void fun5(){
//通过连接池方式连接redis数据库
Jedis jedis = RedisUtils.getJedis();
//添加zset型数据
jedis.zadd("field3",1,"hhh");
jedis.zadd("field3",0,"jjj");
jedis.zadd("field3",3,"bbb");
//获取set型数据
Set<String> field3 = jedis.zrangeByScore("field3", 0, 5);
//用迭代器循环输出
Iterator<String> iterator = field3.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
RedisUtils.returnResource(jedis);
}
}






。
IDEA连接Redis的更多相关文章
- 用Jedis连接Redis
jedis中的方法名,和Redis的命令几乎一样 1.jar包,作为测试只需要一个jar 2.代码 package com; import java.util.HashMap; import java ...
- 使用可视化工具redisclient连接redis
可视化工具推荐:http://database.51cto.com/art/201505/477692.htm 1.连接redis服务端 1.1 设置连接密码:在redis根目录下,双击redis-c ...
- 关于Jedis连接redis出现问题
环境说明: redis服务器系统:ubuntu ip 192.168.10.9 port 6379 两台电脑:一个作为专门的服务器,一个是开发环境,以下一顿操作皆基于开发环境. 就这样的简单的代码连接 ...
- Redis系列-远程连接redis并给redis加锁
假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...
- redis在.net架构中的应用(1)--使用servicestack连接redis(转)
引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/sta ...
- php安装redis扩展连接redis服务器
扩展包的下载地址:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz tar xf phpredis-2.2.4.tar.gz cd ...
- Java连接redis的使用演示样例
Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...
- 在Linux平台上用ASP.NET 5 连接Redis服务器
最近在做一个Linux平台上基于ASP.Net 5 中间件+Redis+Mysql架构的系统,研究使用了 StackExchange.Redis 作为asp.net5连接redis的工具.作者在前几天 ...
- 利用servicestack连接redis
利用servicestack连接redis 引言:作为少有的.net架构下的大型网站,stackoverflow今日发表了一篇文章,介绍了其技术体系,原文链接http://highscalabilit ...
- 使用Java连接Redis
下载redis的驱动包:Jedis.下载地址:https://mvnrepository.com/artifact/redis.clients/jedis/2.9.0 打开IDE,我使用的是Eclip ...
随机推荐
- 《TypeScript入门教程》笔记
基础 原始数据类型 布尔值 let isDone: boolean = false; 数值 let decLiteral: number = 6; 字符串 let myName: string = ' ...
- C语言I博客作业06
这个作业属于哪个课程 C语言程序设计I 这个作业要求在哪里 作业链接 我在这个课程的目标是 熟悉分支结构 这个作业在那个具体方面帮助我实现目标 可以更完整的编写程序及博客园 参考文献 [参考文献](h ...
- fenby C语言 P20
循环停止 break 立刻跳出不再循环 continue立刻跳出循环从下一次循环继续执行 #include <stdio.h> int main(){ int i; for(i=1;i&l ...
- networkx整理
1.基础知识 1.1.介绍 networkx在2002年5月产生,是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析.仿真建模等工作 ...
- Just For Test
Just For Test
- Java连接MySQL简单步骤及常见问题解析
这篇文章跟读者们介绍Java语言如何连接到MySQL数据库相关操作,及FAQ(Frequently Asked Questions)介绍. 选择工具和准备数据集 IDE:Eclipse 数据库:使用的 ...
- Vue + Mui
概述 Vue套用Mui的外壳开发app项目,可以通过Mui的 manifest.json 文件添加权限 1.新建Mui项目 首先,新建一个空的Mui项目 window.location.href = ...
- linux安装redis及外网访问
1.下载Redis,最新版是redis-3.2.1.tar.gz 2.上传到Linux上,解压到/usr/local/下面 ,命令:tar -zxvf redis-3.2.1.tar.gz 3.我们 ...
- [数据同步]Flume 抽取Mysql历史数据
一.Flume安装目录 1.安装部署目录 [admin@test01 apache-flume-1.9.0-bin]$ pwd /opt/apache-flume-1.9.0-bin 2.将所需jar ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...