Jedis零基础入门及操作Redis中的数据结构详解

2023-02-23 0 1,899

目录

Jedis简介及其入门

Jedis简介

redis是当今基本所有互联网产品都在使用的一种提供键值对形式的内存数据库。之所以说是内存数据库,是因为redis基于内存的读取和写入相比传统的数据库基于磁盘IO快上数倍。于是乎redis在现在的应用中使用的非常广泛。
redis主要的作用在于:

  • 提供缓存服务,存储访问频率高的热数据防止穿透到数据库
  • 在分布式系统中可以作为实现分布式锁的一种实现方案

那jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用
总结:Jedis: 一款java操作redis数据库的工具。

Jedis的操作入门

导入Jedis的依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.4.0</version>
</dependency>

建立测试类进行使用
package com.yyl.firstdemo;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
public class JedisTest {
@Test
public void ConnectionTest(){
//建立连接
Jedis jedis = new Jedis(\"localhost\", 6379);
//设置连接redis的密码 没密码,就不写
// jedis.auth(\"\");
//操作
jedis.set(\"username\", \"zhangsan\");
//关闭连接
jedis.close();
}
}

先启动redis服务端,再运行代码
运行结束以后,username就存在了redis中
Jedis零基础入门及操作Redis中的数据结构详解

Jedis操作Redis中的数据结构

字符串类型 string

代码如下,set与get默认的就是操作字符串类型
@Test
public void JedisStringTest() {
// 建立连接,如果无参,默认主机名为localhost,port为6379
Jedis jedis = new Jedis();
// 设置连接redis的密码
// jedis.auth(\"123456\");
// 操作数据
// set存储数据
jedis.set(\"username\", \"yangminghui\");
// get获取数据
String name = jedis.get(\"username\");
System.out.println(name);
//关闭连接
jedis.close();
}

运行结果:
Jedis零基础入门及操作Redis中的数据结构详解
在操作字符串时,也可以指定数据的保存时间,超过指定时间之后,数据自动删除,比如发送验证码,该验证码在指定的时间内有效,可以通过这种方式实现。
使用setex函数存储具有时间限制的数据
参数如下:

  • 第一个参数key,是存储的键
  • 第二个有效期,以秒为单位
  • 第三个参数value,是要存储的值

例如:
jedis.setex(\"yang\", 10, \"666\");

存储键为yang,值为666的数据,有效期为10s,10s之后自动删除
代码如下:
@Test
public void JedisStringSetexTest() throws InterruptedException {
// 建立连接,如果无参,默认主机名为localhost,port为6379
Jedis jedis = new Jedis();
// 设置连接redis的密码
// jedis.auth(\"123456\");
// 操作数据
// setex存储具有时间限制的数据
// 第一个参数key,第二个有效期,以秒为单位,第三个参数value
jedis.setex(\"username\", 3,\"yangminghui\");
// get获取数据
String name = jedis.get(\"username\");
System.out.println(name);
Thread.sleep(4000);
String name2 = jedis.get(\"username\");
System.out.println(name2);
//关闭连接
jedis.close();
}

运行结果:
Jedis零基础入门及操作Redis中的数据结构详解

哈希类型 map

代码如下:
@Test
public void JedisHashTest(){
//建立连接
Jedis jedis = new Jedis(\"localhost\", 6379);
// 设置连接redis的密码
// jedis.auth(\"123456\");
//操作数据
//hset存储数据
jedis.hset(\"myhash\", \"username\", \"yangminghui\");
jedis.hset(\"myhash\", \"password\", \"666666\");
jedis.hset(\"myhash\", \"sex\", \"male\");
//hget获取数据
String password = jedis.hget(\"myhash\", \"password\");
System.out.println(\"password\"+password);
System.out.println(\"---------------------------------\");
//hgetall获取所有,得到map集合
Map<String, String> map = jedis.hgetAll(\"myhash\");
//遍历map集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
for (Map.Entry<String, String> entry : entrySet) {
System.out.println(entry.getKey()+\":\"+entry.getValue());
}
//关闭连接
jedis.close();
}

运行结果:
Jedis零基础入门及操作Redis中的数据结构详解

列表类型 list

代码如下:
@Test
public void JedisListTest(){
//建立连接
Jedis jedis = new Jedis(\"localhost\",6379);
//设置连接redis的密码
// jedis.auth(\"123456\");
//操作数据
//lpush向列表的左边添加数据
jedis.lpush(\"mylist\", \"a\",\"b\",\"c\");
//rpush,向列表的右边添加数据
jedis.rpush(\"mylist\", \"d\",\"e\");
//获取数据,第一个参数为键,第二个参数为起始值,第三个参数为结束值,-1表示到最后一个
List<String> list = jedis.lrange(\"mylist\", 0, -1);
for (String string : list) {
System.out.println(string);
}
System.out.println(\"--------------\");
//删除并且返回最左边的元素
String value1 = jedis.lpop(\"mylist\");
System.out.println(value1);
System.out.println(\"--------------\");
//删除并且返回最右边的元素
String value2 = jedis.rpop(\"mylist\");
System.out.println(value2);
System.out.println(\"--------------\");
//再次获取
List<String> list2 = jedis.lrange(\"mylist\", 0, -1);
System.out.println(list2);
//关闭连接
jedis.close();
}

运行结果如下:
Jedis零基础入门及操作Redis中的数据结构详解

集合类型 set

代码如下:
@Test
public void JedisSetTest(){
// 建立连接
Jedis jedis = new Jedis(\"localhost\",6379);
// 设置连接redis的密码
// jedis.auth(\"123456\");
//操作数据
//sadd添加数据
jedis.sadd(\"myset\", \"b\",\"a\",\"d\",\"a\");
// smembers获取元素
Set<String> set = jedis.smembers(\"myset\");
for (String string : set) {
System.out.println(string);
}
// 关闭连接
jedis.close();
}

获取结果没有重复的值:
Jedis零基础入门及操作Redis中的数据结构详解

有序集合类型 sortedset

代码如下,使用zadd添加数据的时候需要设置数据的排序分数:
@Test
public void JedisSortedSetTest(){
// 建立连接
Jedis jedis = new Jedis(\"localhost\",6379);
// 设置连接redis的密码
// jedis.auth(\"123456\");
//操作数据
//zadd添加数据
jedis.zadd(\"mysort\", 50, \"yang\");
jedis.zadd(\"mysort\", 12, \"yu\");
jedis.zadd(\"mysort\", 22 , \"wang\");
//zrange获取元素,第一个参数键,第二个起始位置,第三个参数结束位置
Set<String> set = jedis.zrange(\"mysort\", 0, -1);
for (String string : set) {
System.out.println(string);
}
System.out.println(\"-------------\");
//带分数获取
Set<Tuple> set2 = jedis.zrangeWithScores(\"mysort\", 0, -1);
for (Tuple tuple : set2) {
System.out.println(tuple.getElement()+\":\"+tuple.getScore());
}
//关闭连接
jedis.close();
}

运行结果如下:
Jedis零基础入门及操作Redis中的数据结构详解

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 PHP教程 Jedis零基础入门及操作Redis中的数据结构详解 http://www.20zxx.cn/585685/xuexijiaocheng/qes.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务