发布于2021-06-14 10:00 阅读(672) 评论(0) 点赞(6) 收藏(5)
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
String host ="127.0.0.1";
int port = 6379;
int timeout = 1000;//超时时间,1秒超时
//连接本地的 Redis 服务
Jedis jedis = new Jedis(host,port,timeout);
// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
// jedis.auth("123456");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
}
}
运行以上 Java 程序
连接池的作用:
限定了最大并发连接数,防止Redis服务由于连接过多而崩溃。
避免重复创建和关闭连接,节约内存资源,和时间资源。
连接池参数设置:
最小连接数(空闲最大连接数)
最大连接数(忙时最大连接数)
超时时间(创建连接超时时间)
设置连接畅通时机
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import org.junit.Test;
public class RedisTest {
/*
使用连接池访问Redis
1.创建连接池配置对象
2.配置
忙时:最大连接数
闲时:最大连接数
最大等待时间
获取连接池检查配置
3.通过连接池配置对象创建连接池jedispool
4.通过连接池获取连接
5.执行操作
6.释放连接
7.摧毁连接池-如果是真正项目中它应该是一个受spring管理的单例
*/
@Test
public void testRedis() throws Exception{
//1.创建连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
//2.配置
config.setMaxIdle(8);//忙时:最大连接数
config.setMaxTotal(10);//闲时:最大连接数
config.setMaxWaitMillis(1*1000); //创建连接超时
config.setTestOnBorrow(true);//获取连接是测试连接是否畅通
//3.创建连接池
JedisPool pool = new JedisPool(config, "127.0.0.1",6379, 1000);
//4.通过连接池获取连接
Jedis jedis = pool.getResource();
//5.执行操作
jedis.set("name","木研");
System.out.println("获取值:" + jedis.get("name"));
//6.释放连接
jedis.close(); //底层做了兼容,如果是连接池操作就是释放,如果是连接操作就是关闭
//7.摧毁连接池
pool.destroy();
}
}
运行以上 Java 程序
使用jedis来操作redis的key和value,而value有很多种类型,和命令操作一样。
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
System.out.println(jedis.set("name","zhangsan"));//新增
System.out.println(jedis.get("name"));//获取
System.out.println(jedis.set("name","zhangsan1"));//修改
System.out.println(jedis.get("name"));//获取
System.out.println(jedis.del("name"));//删除
}
}
import redis.clients.jedis.Jedis;
import java.util.List;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
jedis.lpush("students1","1","2","3","5","6");
// 获取存储的数据并输出
List<String> list = jedis.lrange("students1", 0 ,3);
for(int i=0; i<list.size(); i++) {
System.out.println("列表项为: "+list.get(i));
}
}
}
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
jedis.sadd("students2","a1","b1","c1","b1");
System.out.println(jedis.smembers("students2"));
}
}
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
jedis.zadd("students3",166.3,"a1");
System.out.println(jedis.zrange("students3",0,-1));
}
}
import redis.clients.jedis.Jedis;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
jedis.hset("students4","student","zhangsan");
System.out.println(jedis.hget("students3", "student"));
}
}
import redis.clients.jedis.Jedis;
import java.util.Iterator;
import java.util.Set;
public class Main {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
// 获取数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
}
}
import redis.clients.jedis.Jedis;
import redis.clients.jedis.SortingParams;
public class Main {
/*
* sort排序
* 数字不用加SortingParams
* 字母需要加SortingParams,并且是指ASCII值排序
* */
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("127.0.0.1",6379,1000);
//清空当前数据库中的所有 key
jedis.flushDB();
//对数字排序
jedis.lpush("nums","1","2","3","4","8","5","3","1");
System.out.println(jedis.sort("nums"));
SortingParams sortingParams1 = new SortingParams();
sortingParams1.desc();// 按desc排序
System.out.println(jedis.sort("nums", sortingParams1));
//对字母排序
jedis.lpush("langues","java","php","c++","test","ui");
SortingParams sortingParams = new SortingParams();
sortingParams.alpha();//按照字母排序
sortingParams.desc();
System.out.println(jedis.sort("langues",sortingParams));
}
}
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Transaction;
import java.util.List;
public class Main {
/*redis的事务处理,多条命令中有失败也无法将所有指令回滚*/
public static void main(String[] args) {
//创建连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
//配置
config.setMaxIdle(8);//忙时:最大连接数
config.setMaxTotal(10);//闲时:最大连接数
config.setMaxWaitMillis(1*1000); //创建连接超时
config.setTestOnBorrow(true);//获取连接是测试连接是否畅通
//创建连接池
JedisPool pool = new JedisPool(config, "127.0.0.1",6379, 1000);
//通过连接池获取连接
Jedis jedis = pool.getResource();
//清空当前数据库中的所有 key
jedis.flushDB();
jedis.set("name","ty");
jedis.set("age","18");
System.out.println("获取name、age的值:" + jedis.mget("name","age"));
//开启事务
Transaction transaction = jedis.multi();
transaction.incr("name");
transaction.incr("age");
//提交事务
List<Object> exec = transaction.exec();
System.out.println(exec);
System.out.println("获取name、age的值:" + jedis.mget("name","age"));
//关闭连接
jedis.close();
//摧毁连接池
pool.destroy();
}
}
原文链接:https://blog.csdn.net/qq_45988641/article/details/117768515
作者:java战神
链接:http://www.javaheidong.com/blog/article/222678/575c95129a9ab30151ef/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!