Java之连接Redis
从前面的学习,大致了解了redis。
那么在开发过程中,java要操作redis数据库的话,第一步做什么呢?
当然是连接redis啦~
那么下面就是连接redis的一些较为基础的操作;
目录
- 一、导入依赖
- 二、连接Redis
- 2.1 连接Redis
- 2.2 数据操作
- 2.2.1 String
- 2.2.2 list
- 2.2.3 hash
- 2.2.4 Set
- 2.2.5 sorted Set
- 三、示例代码
一、导入依赖
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>
二、连接Redis
2.1 连接Redis
相较于JDBC或者Mybatis的连接方式,连接redis简单很多
//连接指定的redis
Jedis jedis = new Jedis("主机ip","端口");
//如果有密码则需要下面这一行
jedis.auth("密码");
//查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误
jedis.ping();
如果只是连接本地的地址以及默认端口的话,可以直接使用无参构造函数生成对象即可。
因为Jedis继承了Connection这个类,默认的端口和主机IP就是6379和localhost。
2.2 数据操作
redis自带操作命令可以参考
Redis入门(一)——了解Redis
2.2.1 String
方法 | 描述 |
---|---|
String set(String key, String value) | 设置 redis 字符串数据 |
String get(String key) | 获取存储的字符串数据 |
2.2.2 list
方法 | 描述 |
---|---|
Long lpush(String key, String… strings) | 将一个或多个值插入到列表头部 |
Long rpush(String key, String… strings) | 将一个或多个值插入到列表尾部 |
List lrange(String key, long start, long end) | 获取列表指定范围内的元素 |
String lindex(String key, long index) | 通过索引获取列表中的元素 |
Long llen(String key) | 获取列表长度 |
2.2.3 hash
方法 | 描述 |
---|---|
String hmset(String key, Map<String, String> hash) | 创建hash表,赋值字段和值 |
List hmget(String key, String… fields) | 获取hash表字段值 |
Map<String, String> hgetAll(String key) | 获取hash表所有的字段和值 |
Set hkeys(String key) | 获取所有字段 |
Long hlen(String key) | 获取字段数量 |
Boolean hexists(String key, String field) | 判断指定字段是否存在 |
2.2.4 Set
类似于Java中的set集合,是一种无序的集合,其中的元素没有先后顺序。
方法 | 描述 |
---|---|
Long sadd(String key, String… members) | 对集合添加一个或多个成员 |
Long scard(String key) | 获取集合的成员数 |
Set smembers(String key) | 获取集合中的成员 |
Boolean sismember(String key, String member) | 判断集合是否包含指定成员 |
Set sinter(String… keys) | 获取多个集合的交集 |
Set sunion(String… keys) | 获取多个集合并集 |
Set sdiff(String… keys) | 返回第一个集合与其他集合之间的差异 |
2.2.5 sorted Set
和集合一样也是 string 类型元素的集合,且不允许重复的成员
方法 | 描述 |
---|---|
Long zadd(String key, double score, String member) | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
Long zcard(String key) | 获取有序集合的成员数 |
Long zrank(String key, String member) | 获取元素对应的索引 |
Set zrange(String key, long start, long end) | 获取有序集合指定范围的元素 |
Long zrem(String key, String… members) | 移除集合中的一个元素或多个元素 |
三、示例代码
public static void main(String[] args){//连接本地的redisJedis jedis = new Jedis();//如果有密码则需要下面这一行jedis.auth("密码");//查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误System.out.println(jedis.ping());/*****************String示例*****************///设置字符串数据jedis.set("word","helloWorld");//读取字符串数据System.out.println(jedis.get("word"));//删除数据jedis.del("word");/*****************List示例*****************/jedis.lpush("list","google");jedis.lpush("list","aLi");jedis.rpush("list","Mi");List<String> stringList = jedis.lrange("list",0l,-1l);for(String str:stringList){System.out.println(str);}/*****************Hash示例*****************/HashMap<String,String> map = new HashMap<>();map.put("name","tom");map.put("age","81");jedis.hmset("man",map);System.out.println(jedis.hmget("man","name"));System.out.println(jedis.hgetAll("man"));System.out.println("获取所有字段:"+jedis.hkeys("man"));System.out.println("获取字段数量:"+jedis.hlen("man"));System.out.println("判断age字段是否存在:"+jedis.hexists("man","age"));/*****************Set示例*****************/jedis.sadd("set1","1");jedis.sadd("set1","2");jedis.sadd("set1","1");jedis.sadd("set2","1");jedis.sadd("set2","4");System.out.println("获取集合的成员数"+jedis.scard("set1"));System.out.println("获取集合中的成员"+jedis.smembers("set2"));System.out.println("判断集合是否包含指定成员"+jedis.sismember("set1","2"));System.out.println("获取多个集合的交集"+jedis.sinter("set1","set2"));System.out.println("获取多个集合并集"+jedis.sunion("set1","set2"));System.out.println("返回第一个集合与其他集合之间的差异"+jedis.sdiff("set1","set2"));/*****************sorted Set示例*****************/jedis.zadd("set1",1,"a");jedis.zadd("set1",3,"b");System.out.println("获取有序集合的成员数"+jedis.zcard("set1"));System.out.println("获取元素对应的索引"+jedis.zrank("set1","b"));System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));System.out.println("移除集合中的一个元素或多个元素"+jedis.zrem("set1","a"));jedis.zadd("set1",3,"c");System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));jedis.zadd("set1",5,"b");System.out.println("获取有序集合指定范围的元素"+jedis.zrange("set1",0,-1));}
Java之连接Redis相关推荐
- Java应用连接Redis
目录 一.Maven工程连接Redis 1.1 修改redis.conf文件 1.2 在maven工程中添加Jedis依赖 1.3 使用案例 二.SpringBoot工程中连接Redis 2.1 创建 ...
- Java如何连接Redis?
安装Redis以后,如何使用在Java中呢? 1.下载 jedis.jar包,这是驱动(Jedis就是redis支持java的第三方类库,使用Jedis类库,才可以操作redis数据库) PS:Jed ...
- Java密码连接redis
一般用Java连接数据库都是在配置文件中配置所有redis相关信息,包括密码,现在给出在java中直接连接redis的方法. public void RedisDB(){String host = & ...
- java配置连接redis及简单使用
使用命令 在安装好redis官网下载压缩包,解压,用cmd命令运行即可 安装服务:redis-server --service-install 卸载服务:redis-server --service- ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave....
报错: READONLY You can't write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.
报错: READONLY You can't write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- java程序无法连接redis 正常启动但是无法访问
最近做网站,www.read8686.com 自己做的一个小型的网站 但是访问的速度太慢了,因为资金的问题,服务器只能买最小的 如何来提高速度 希望把数据存入到redis中,然后redis来实现高速的 ...
- java 连接redis失败_java 连接Redis问题及demo
java连接linux Redis遇到的问题 昨天在Linux搭建了Redis服务,今天使用java连接测试了一下.要想使用java连接redis服务,就离不开jedis-2.6.1.jar.使用je ...
- Java中使用Jedis连接Redis对SortedSet进行排序操作
场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...
最新文章
- python读取excel画散点图-matplotlib两种画散点图的方式
- 进程(process)和线程
- vue配置git的子模块
- appium+python自动化项目实战(一):引入nose和allure框架
- ffmpeg播放器 android,Android使用FFmpeg(六)--ffmpeg实现音视频同步播放
- 使用transforms.Compose套件做图像数据变换
- Mate 50系列首发?曝鸿蒙3.0用户版5月内测
- VUE 响应式原理源码:带你一步精通 VUE | 原力计划
- Python并行编程(七):多进程的基本使用和与多线程的差异
- POJ1067 取石子游戏 Wythoff's game C语言
- 计算机系统从本地硬盘启动设置,技嘉主板电脑在BIOS中设置硬盘启动教程
- 用实例配置 linux squid 代理服务器
- channel使用法则
- 在演讲中如何吸引你的听众技巧
- Linux 绑定IP
- Zotero使用指南04:群组功能
- 使用asm.jar将Android手机屏幕投影到电脑
- Spring总结(IOC、AOP原理以及Spring事务)
- android 方向euler,android – 如何从旋转矢量获取欧拉角(Sensor.TYPE_ROTATION_VECTOR)
- python 几何_使用Python写入几何
热门文章
- SpringCloud核心组件介绍 (Netflix + Alibaba套件)
- Spring Boot底层原理详解及整合
- 利用POI操作不同版本号word文档中的图片以及创建word文档
- 管式超滤系统:超滤技术在工业废水处理中的应用
- python pip下载速度太慢解决
- 计算机及应用中级职称考试试题及答案,2017年计算机及应用考试试题及答案.pdf...
- Kotlin和Flutter,我全都要!
- SSM酒店预约管理系统 计算机毕业设计源码40970
- LISP道路中线_如何画两条样条线间中心线之三:CAD插件/Lisp编程法
- Quick-Coco2d-x开发环境搭建