IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> IDEA搭建spring boot项目十一:Redis简单使用 -> 正文阅读

[Java知识库]IDEA搭建spring boot项目十一:Redis简单使用

目录

一、Redis简介

二、Redis安装

1、下载地址

2、安装与启动

三、Redis可视化工具安装

四、Redis的简单命令

五、Redis的java使用

1、添加依赖

2、创建service测试类

3、启动测试


参考文档

Redis 教程 | 菜鸟教程

一、Redis简介

二、Redis安装

1、下载地址

Redis下载地址

redis安装包64位,windows-其它文档类资源-CSDN下载

RedisClient下载地址

Redis可视化工具RedisClient-其它文档类资源-CSDN下载

2、安装与启动

下载Redis安装包,地址在文章开头。

将安装包解压到对应目录

打开解压的目录,在上方地址栏输入cmd进入命令窗口

在命令窗口输入redis-server.exe redis.windows.conf并回车,显示以下界面则启动成功

注意,想要使用Redis,请不要关闭此窗口

三、Redis可视化工具安装

下载RedisClient安装包,地址在文章开头。

将RedisClient安装包解压到对应目录

进入安装目录并点击 redisclient-win32.x86.1.0.exe可启动可视化工具

创建一个库

?

四、Redis的简单命令

五、Redis的java使用

1、添加依赖

查看pom.xml文件中有没有如下依赖,没有则添加

<!--Springboot配置Redis-->
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>4.1.1</version>
</dependency>

2、创建service测试类

ServiceA0006.java文件内容

package com.jicr.springboottest.service;

public interface ServiceA0006 {
    String serviceImpl();
}

ServiceA0006Impl.java文件内容

package com.jicr.springboottest.service.serviceImpl;

import com.jicr.springboottest.service.ServiceA0006;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisMonitor;
import redis.clients.jedis.params.SortingParams;
import java.util.List;
import java.util.Set;

@Log4j2
@Service
public class ServiceA0006Impl implements ServiceA0006 {
    @Override
    public String serviceImpl() {
        Jedis jedis = new Jedis();
        try {
            //连接Redis数据库
            jedis = medConnRedis();
            //字符串String
            medString(jedis);
            //列表List
            medList(jedis);
            //集合Set
            medSet(jedis);
            //有序集合sorted set
            medSortedSet(jedis);
            //哈希Hash
            medHash(jedis);
            //其他方法
            medOther(jedis);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            // 关闭连接
            jedis.close();
        }
        return null;
    }

    /**
     * 其他方法
     * @param jedis redis对象
     */
    public void medOther(Jedis jedis) {
        jedis.quit();//关闭连接

        jedis.auth("");//密码验证

        jedis.save(); //将数据同步保存到磁盘

        jedis.bgsave(); //将数据异步保存到磁盘

        jedis.lastsave(); //返回上次成功将数据保存到磁盘的Unix时戳

        jedis.shutdown(); //将数据同步保存到磁盘,然后关闭服务

        jedis.info(); //提供服务器的信息和统计

        jedis.monitor(new JedisMonitor() {
            @Override
            public void onCommand(String command) {

            }
        }); //实时转储收到的请求

        jedis.slaveof("localhost",8088); //改变复制策略设置

        jedis.configSet("",""); //在运行时配置Redis服务器

        jedis.exists("key1");//判断是否存在(返回类型boolean)

        jedis.type("key1");//返回值类型

        jedis.dbSize();//返回当前库中key的数量

        jedis.expire("key1", 60);//设置有效时间为60秒,过期则自动删除

        jedis.ttl("key1");//查看剩余有效时间,返回-1:未设置有效时间,永久有效;返回-2:key不存在

        jedis.persist("key1");//移除设置的有效时间

        jedis.rename("key1", "key1_new");//修改键名

        jedis.select(2);//按索引查询

        jedis.flushDB();//清空当前数据库数据

        jedis.flushAll();//清空所有数据库数据

        jedis.set("key", "value");//给数据库中名称为key的string赋予值value

        jedis.get("key");//返回数据库中名称为key的string的value

        jedis.getSet("key", "value");//给名称为key的string赋予上一次的value

        jedis.mget("key1", "key2","key3");//返回库中多个string的value

        jedis.setnx("key", "value");//添加string,名称为key,值为value

        jedis.setex("key", 60, "value");//向库中添加string,设定过期时间time

        jedis.msetnx("key1", "val1","key2","val2");//当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),返回 0

        jedis.incr("key");//将 key 中储存的数字值增一

        jedis.incrBy("key", 3);//将 key 所储存的值加上给定的增量值

        jedis.decr("key");//将 key 中储存的数字值减一

        jedis.decrBy("key", 3);//key 所储存的值减去给定的减量值

    }

    /**
     * Redis集合Hash
     * @param jedis redis对象
     */
    private void medHash(Jedis jedis) {
        log.info("Redis集合Hash");

        log.info("------------增------------");
        jedis.hset("hashKey","key1","val1");//单个
        jedis.hincrBy("hashKey","key2", 4L);//整型

        log.info("------------查------------");
        jedis.hvals("hashKey");//查所有
        jedis.hexists("hashKey","key1");//判断是否存在
        jedis.hget("hashKey","key1");//查询单个的值
        jedis.hmget("hashKey","key1","key2");//查询多个值
        jedis.hkeys("hashKey");//查询所有键
        jedis.hvals("hashKey");//查询所有值

        log.info("------------改------------");
        jedis.hincrBy("hashKey","key2", 2L);//整型值增加

        log.info("------------删------------");
        jedis.hdel("hashKey","key1");//单个删除
        jedis.hdel("hashKey","key2","key3");//批量删除

    }
    /**
     * 有序集合sorted set
     *
     * @param jedis redis对象
     */
    private void medSortedSet(Jedis jedis) {
        log.info("redis有序集合sorted set");

        log.info("------------增------------");
        jedis.zadd("zsetKey",2.0,"val1");//单个添加,参数分别为集合名,权重,值,按照权重排序

        log.info("------------查------------");
        jedis.zrange("zset", 0, -1);//查询所有值,按照权重排序
        jedis.zcard("zsetKey");//集合长度
        jedis.zcount("zsetKey",1.0,8.0);//权重范围内元素个数
        jedis.zscore("zsetKey","val1");//查看元素权重
        jedis.zrange("zsetKey",1,3);//查询下标1到3的元素

        log.info("------------改------------");
        jedis.rename("zsetKey","zsetKeyNew");

        log.info("------------删------------");
        jedis.zrem("zsetNew","val1");//删除单个
        jedis.zrem("zsetKeyNew","val1","val2");//删除多个

    }

    /**
     * 集合Set
     *
     * @param jedis redis对象
     */
    public void medSet(Jedis jedis) {
        log.info("redis集合Set");

        log.info("------------增------------");
        jedis.sadd("setKey","val1");//单个
        jedis.sadd("setKey","val1","val2","val3","val4","val5","val6");//多个值,无序不重复

        log.info("------------查------------");
        jedis.smembers("setKey");//查所有值
        Set<String> set = jedis.smembers("setKey");//循环所有值
        for (Object obj : set) {
            log.info(obj);
        }
        jedis.sinter("setKey1", "setKey2");//两集合交集
        jedis.sunion("setKey1", "setKey2");//两集合并集
        jedis.sdiff("setKey1", "setKey2");//两集合差集,setKey1-setKey2

        log.info("------------改------------");
        jedis.rename("setKey","setKey1");//修改集合名字

        log.info("------------删------------");
        jedis.srem("setKey1","val1");//删除单个
        jedis.srem("setKey1","val2","val3");//删除多个
        jedis.spop("setKey1");//集合出栈,由于是无序,所以出栈元素随机,无实际意义
    }

    /**
     * 列表List
     *
     * @param jedis redis对象
     */
    public void medList(Jedis jedis) {
        log.info("redis列表List");

        log.info("------------增------------");
        //从前往后新增,越后新增的下标越小
        jedis.lpush("listName","val1");//单个
        jedis.lpush("listName", "val2", "val3", "val4", "val5", "val6", "val6","val6","val6");//多个 可重复

        log.info("------------查------------");
        long len=jedis.llen("listName");//list长度
        List<String> listName = jedis.lrange("listName", 0, len-3);//查询指定下标区域的值并存储到List集合中
        List<String> listsName = jedis.lrange("listName",0,-1);//查询所有值并存储到List集合中
        log.info("list区域值:"+listName);
        log.info("list所有值:"+listsName);
        //list排序
        SortingParams sortingParameters = new SortingParams();
        sortingParameters.alpha();
        sortingParameters.limit(0, (int) len);
        log.info("list排序sortingParameters:"+jedis.sort("listName",sortingParameters));
        
        log.info("------------改------------");
        jedis.lset("listName",5,"val4_new");//改指定下标

        log.info("------------删------------");
        jedis.lrem("listName",2,"val6");//删除指定值,第二个参数为删除的个数(有重复的话),先删除后新增到list的的。
        jedis.ltrim("listName",0,jedis.llen("listName")-2);// 删除区间以外的数据
        jedis.lpop("listName");//出栈一个元素,即删除下标为0的元素
    }

    /**
     * 字符串String
     *
     * @param jedis redis对象
     */
    public void medString(Jedis jedis) {
        log.info("redis字符串String");

        log.info("------------增------------");
        jedis.set("key1", "val1");//单个
        jedis.mset("key2", "val2","key3","val3","key4","val4","key5","val5","key6","val6");//多个

        log.info("------------查------------");
        jedis.get("ele01");//单个
        jedis.mget("key1","key2","key3");//多个

        log.info("------------改------------");
        jedis.set("key1","val1_new");//直接覆盖
        jedis.set("key2","val2_new");//追加
        jedis.rename("key3","key3_new");//改键名

        log.info("------------删------------");
        jedis.del("key4");//单个
        jedis.del("key5","key6");//多个

    }

    /**
     * 连接数据库
     */
    public Jedis medConnRedis() {
        // 连接Redis数据库
        Jedis jedis = new Jedis("localhost", 6379);
        // jedis.auth("password"); //如果需密码
        log.info("连接成功");
        //查看服务是否运行
        log.info("服务正在运行: " + jedis.ping());

        return jedis;
    }

}

class testMain {
    public static void main(String[] args) {
        ServiceA0006Impl serviceA0006=new ServiceA0006Impl();
        serviceA0006.medConnRedis();
        Jedis jedis = new Jedis();
        serviceA0006.medSet(jedis);


    }
}

3、启动测试

在controller中添加方法启动项目,然后使用postman发送请求进行测试。或者写main方法测试。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:21:20  更:2022-03-24 00:23:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:43:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码