redisjava获取数据类型_Java操作Redis五种数据类型项⽬添加依赖
redis.clients
jedis
2.9.0
Java 怎么连接 Redis
//连接 Redis
@Testpublic voidinitConn01(){
System.out.println("==========================");
System.out.println("==========================");
System.out.println("==========================");//创建 jedis 对象,连接 redis 服务
Jedis jedis=new Jedis("192.168.75.163",6379);//设置认证密码//jedis.auth("root");//指定数据库 默认是 0
jedis.select(1);//使⽤ ping 命令,测试连接是否成功
String result=jedis.ping();
System.out.println(result);//返回 PONG//添加⼀条数据
jedis.set("username","zhangsan");//获取⼀条数据
String ("username");
System.out.println(username);//释放资源
if(jedis!=null){
jedis.close();
}
}
看下输出结果
通过 Redis 连接池获取连接对象并操作服务器
private String host ="192.168.75.163";private Integer port=6379;
@Testpublic voidinitConn02() {//初始化 redis 客户端连接池
JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), host, port, 10000);//从连接池获取连接
Jedis jedis =Resource();//指定数据库 默认是 0
jedis.select(2);//使⽤ ping 命令,测试连接是否成功
String result =jedis.ping();
System.out.println(result);//返回 PONG//添加⼀条数据
jedis.set("username", "zhangsan");//获取⼀条数据
String username = ("username");
System.out.println(username);//释放资源
if (jedis != null)
jedis.close();
}
封装 JedisUtil 对外提供连接对象获取⽅法
importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;/*** 实例化 Jedis 对象⼯具类*/
public final classJedisUtil {//Redis 服务器 IP
private static String ADDR = "192.168.75.163";//Redis 的端⼝号
private static int PORT = 6379;//访问密码
private static String AUTH = "root";//可⽤连接实例的最⼤数⽬,默认值为 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= newJedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);//jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
jedisPool = newJedisPool(config, ADDR, PORT, TIMEOUT);
}catch(Exception e) {
e.printStackTrace();
}
}/*** 获取 Jedis 实例
*
*@return
*/
public synchronized staticJedis getJedis() {try{if (jedisPool != Resource();return null;
}catch(Exception e) {
e.printStackTrace();return null;
}
}/*** 释放 jedis 资源
*
*@paramjedis*/
public static void returnResource(finalJedis jedis) {if (jedis != null) { jedisPool.close();
}
}
}
Java 操作 Redis 五种数据类型
连接与释放
Jedis jedis = null;/*** 连接 Redis*/@Beforepublic voidinitConn() {
Jedis();
}/*** 释放资源*/@Afterpublic voidclose() {
}
1、操作 String
@Testpublic voidtestString() {//添加⼀条数据
jedis.set("username", "zhangsan");
jedis.set("age", "18");//添加多条数据 参数奇数为 key 参数偶数为 value
jedis.mset("address", "bj", "sex", "1");//获取⼀条数据
String username = ("username");
System.out.println(username);//获取多条数据
List list = ("username", "age", "address", "sex");for(String str : list) { System.out.println(str);redis支持的五种数据类型
}//删除//jedis.del("username");
}
看下结果
2、操作 hash
@Testpublic voidtestHash() {/** 添加⼀条数据
* 参数⼀:redis 的 key
* 参数⼆:hash 的 key
* 参数三:hash 的 value*/jedis.hset("userInfo", "name", "lisi");//添加多条数据
Map map = new HashMap<>();
map.put("age", "20");
map.put("sex", "1");
jedis.hmset("userInfo", map);//获取⼀条数据
String name = jedis.hget("userInfo", "name");
System.out.println(name);//获取多条数据
List list = jedis.hmget("userInfo", "age", "sex");for(String str : list) {
System.out.println(str);
}//获取 Hash 类型所有的数据
Map userMap = jedis.hgetAll("userInfo");for (Map.EntryuserInfo : Set()) {
System.out.Key()+ "--" +Value());
}//删除 ⽤于删除 hash 类型数据//jedis.hdel("userInfo", "name");
}
看下结果
3、操作 list
@Testpublic voidtestList() {//左添加(上)
jedis.lpush("students", "Wang Wu", "Li Si");//右添加(下)
jedis.rpush("students", "Zhao Liu");//获取 start 起始下标 end 结束下标 包含关系
List students = jedis.lrange("students", 0, 2);for(String stu : students) {
System.out.println(stu);
}//获取总条数
Long total = jedis.llen("students");
System.out.println("总条数:" +total);//删除单条 删除列表中第⼀次出现的 Li Si//jedis.lrem("students", 1, "Li Si");//删除多条//jedis.del("students");
}
看下结果
4、操作 set
@Testpublic voidtestSet() {//添加数据
jedis.sadd("letters", "aaa", "bbb", "ccc", "ddd", "eee");//获取数据
Set letters = jedis.smembers("letters");for(String letter: letters) {
System.out.println(letter);
}//删除//jedis.srem("letters", "aaa", "bbb");
}
看下结果
5、操作 sorted set -有序
@Testpublic voidtestSortedSet() {
Map scoreMembers = new HashMap<>();
scoreMembers.put("zhangsan", 99D);
scoreMembers.put("lisi", 96D);
scoreMembers.put("wangwu", 92D);
scoreMembers.put("zhaoliu", 100D);
scoreMembers.put("tianqi", 95D);//添加数据
jedis.zadd("score", scoreMembers);//获取数据
Set scores = ange("score", 0, 4);for(String score: scores) {
System.out.println(score);
}//获取总条数
Long total = ard("score");
System.out.println("总条数:" +total);//删除//("score", "zhangsan", "lisi"); }
看下结果
6、Redis 中以层级关系、⽬录形式存储数据

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。