栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【瑞吉外卖⑩】Linux 粗略学习 & Redis 粗略学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【瑞吉外卖⑩】Linux 粗略学习 & Redis 粗略学习


  • 若文章内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系博主删除。

  • 本人写这篇博客旨在制作学习笔记,巩固知识。同时方便个人在线阅览,回顾知识。
  • 这篇博客中主要参考了【瑞吉外卖项目】视频中的内容,略有增删。

  • 推荐博客
    • 本人于 2022 年 4 月 7 日发布过的博客:《Centos7 的下载安装》。

文章目录
  • 前言
  • 0.总目录链接
  • 1.Linux 简介
    • 1.1.不同应用领域的主流操作系统
    • 1.2.Linux 发展历史
    • 1.3.Linux 系统版本
  • 2.Linux 安装
    • 2.1.安装方式
    • 2.2.安装 Linux
    • 2.3.网卡设置
    • 2.4.安装 SSH 连接工具
    • 2.5.使用 FinalShell 连接到 Linux
    • 2.6.Linux 和 Windows 目录结构对比
    • 2.7.Linux 目录介绍
  • 3.Linux 常用命令
    • 3.1.Linux 命令初体验
      • 3.1.1.几个常用命令
      • 3.1.2.注意事项
      • 3.1.3.使用技巧
      • 3.1.4.命令格式
    • 3.2.文件目录操作命令
      • 3.2.1.ls
      • 3.2.2.cd
      • 3.2.3.cat
      • 3.2.4.more
      • 3.2.5.tail
      • 3.2.6.mkdir
      • 3.2.7.rmdir
      • 3.2.8.rm
    • 3.3.拷贝移动命令
      • 3.3.1.cp
      • 3.3.2.mv
    • 3.4.打包压缩命令 tar
    • 3.5.文本编辑命令
      • 3.5.1.vi
      • 3.5.2.vim
    • 3.6.查找命令
      • 3.6.1.find
      • 3.6.2.grep
  • 4.Linux 软件安装
    • 4.1.软件安装方式
    • 4.2.安装 JDK
    • 4.3.有关防火墙的操作
    • 4.4.安装 Tomcat
    • 4.5.安装 MySQL
    • 4.6.安装 lrzsz
  • 5.Linx 中的项目部署
    • 5.1.手工部署项目
    • 5.2.通过 Shell 脚本自动部署项目
  • 6.Redis 基础
    • 6.1.Redis 入门
      • 6.1.1.Redis 简介
      • 6.1.2.Redis 的下载与安装
      • 6.1.3.Redis 服务启动与停止
      • 6.1.4.Redis 设置密码
      • 6.1.5.Redis 设置远程连接
    • 6.2.数据类型
    • 6.3.常用命令
      • 6.3.1.字符串 string 操作命令
      • 6.3.2.哈希 hash 操作命令
      • 6.3.3.列表 list 操作命令
      • 6.3.4.集合 set 操作命令
      • 6.3.5.有序集合 sorted set 操作命令
      • 6.3.6.通用命令
  • 7.在 Java 中操作 Redis
    • 7.1.介绍
    • 7.2.在 Idea 中使用 Jedis
    • 7.3.Spring Data Redis
      • 7.3.1.简单介绍
      • 7.3.2.项目准备工作
      • 7.3.3.string 类型数据操作
      • 7.3.4.hash 类型数据操作
      • 7.3.5.list 类型数据操作
      • 7.3.6.set 类型的数据操作
      • 7.3.7.zset 类型的数据操作
      • 7.3.8.通用的数据类型操作


前言

【瑞吉外卖】项目课程:Linux 学习


  • 该课程在某站视频下的简介
    • 【瑞吉外卖项目】 课程 以当前热门的外卖点餐为业务基础,业务真实、实用、广泛。
    • 基于流行的 Spring Boot、MyBatis Plus 等技术框架进行开发,带领学习者体验真实项目开发流程、需求分析过程、代码实现过程。
    • 学完本课程可以锻炼需求分析能力、编码能力、bug 调试能力,增长开发经验。

  • 黑马瑞吉外卖实战项目的相关链接
    • 在线观看:https://www.bilibili.com/video/BV13a411q753
    • 百度网盘链接:https://pan.baidu.com/s/1bxEy2bHiCYQtouifUppsTA
    • 提取码:1234
    • 阿里云盘链接:https://www.aliyundrive.com/s/DS2XMVojBjH

官方所给的资料链接中是没有视频中出现的 PPT 的,本博客的主要内容就是摘抄自其视频中出现的 PPT 内容。


  • Linux 部分的教学视频:P117 ~ P140
  • Redis 部分的教学视频:P141 ~ P154

0.总目录链接

还没写完,写了再补上。这里占个位置先。



1.Linux 简介
1.1.不同应用领域的主流操作系统
  • 桌面操作系统
  • 服务器操作系统
  • 移动设备操作
  • 系统嵌入式操作系统

  • 桌面操作系统
    • Windows(用户数量最多)
    • Mac OS(操作体验好,办公人士首选)
    • Linux(用户数量少)

  • 服务器操作系统
    • UNIX(安全、稳定、付费)
    • Linux(安全、稳定、免费的版本很多、占有率高)
    • Windows Server(付费、占有率低)

  • 移动设备操作
    • Android(基于 Linux、开源。主要用于智能手机、平板电脑和智能电视)
    • iOS(苹果公司开发、不开源,用于苹果公司的产品,诸如 iphone、iPad)

  • 系统嵌入式操作系统
    • Linux(机顶盒、路由器、交换机)

1.2.Linux 发展历史
  • 时间:1991年
  • 地点:芬兰赫尔辛基大学
  • 人物:Linus Torvalds ( 21岁)
  • 语言:C语言、汇编语言
  • logo:企鹅
  • 特点:免费、开源、多用户、多任务


1.3.Linux 系统版本
  • 内核版
    • 由 Linus Torvalds 及其团队开发维护
    • 免费且开源
    • 复制控制硬件

  • 发行版
    • 基于 Linux 内核进行拓展
    • 由各个 Linux 产商开发、维护
    • 有收费版本,也有免费版本

  • Linux 系统发行版
    • Ubuntu:以桌面应用为主
    • RedHat:应用最为广泛
    • CentOS:RedHat 的社区版 ,免费
    • openSUSE:对个人完全免费、图形界面华丽
    • Fedora:功能完备、快速更新、免费
    • 红旗 Linux:北京中科红旗软件技术有限公司开发


  • 本次课程的操作使用的 LInux 的发行版就是 CentOS。

2.Linux 安装
  • 本人在 2022 年 4 月 7 日发布过的博客《Centos7 的下载安装》有着详细的介绍。

2.1.安装方式
  • Linux 系统的安装方式
    • 物理机安装:直接将操作系统安装到服务器硬件上
    • 虚拟机安装:通过虚拟机软件安装
      • 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的计算机系统。
      • 常用的虚拟机软件:VMware、VirtualBox、VMLite WorkStation、Qemu、HopeddotVOS。

  • 课程中使用的虚拟机软件是 VMware。

2.2.安装 Linux
  • 资料链接:https://pan.baidu.com/s/1bxEy2bHiCYQtouifUppsTA(提取码:1234 )


  • 我们只需要点击 VMware 软件的安装程序,根据提示完成安装即可,非常简答。
  • 之后我们可以使用资料中提供的 CentOS 的镜像文件来完成安装。
  • 安装的具体细节可见我之前写过的博客:《Centos7的下载安装》

2.3.网卡设置
  • 按照我之前写过的博客(Centos7的下载安装)中的操作来的话,是不会发生以下的情况的。

如果诸位在启动服务器时未加载网卡,则会导致 IP 地址初始化失败。

可以采用以下的方式来解决。


  • 首先使用 ip addr 来查看服务器的 ip 地址。

  • 修改网络初始化配置,设定网卡在系统启动时初始化。
cd / # 进入根目录

cd etc # 进入 etc 目录

cd sysconfig # 进入 sysconfig 目录

cd network-scripts # 进入 network-scripts

vi ifcfg-ens33 # 编辑 ifcfg-en33 文件
  • 这里补充一下关于 vi 的按键操作
    • 按 键,进入光标状态。
    • 移动光标,找到要修改的部分,再修改内容。
    • 按 键,退出光标状态。
    • 再敲 :wq --> 最后按 键,成功保存退出

可以看到 BOOTPROTO=dhcp ,ONBOOT=no。我们把其改为 ONBOOT=yes 就行。

  • ONBOOT 是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯。

之后重启虚拟机即可。


2.4.安装 SSH 连接工具
  • SSH (Secure Shell),建立在应用层基础上的安全协议。

  • 常用的 SSH 连接工具
    • putty
    • secureCRT
    • xshell
    • finalshell

  • 通过 SSH 连接工具就可以实现从本地连接到远程的 Linux 服务器。

2.5.使用 FinalShell 连接到 Linux
  • 课程中使用的软件时 FinalShell,资料中也都有提供。
  • 直接按照提示安装就行,非常简单。

安装好 finalshell 之后,如下图操作即可。

这里输入我们之前查到的 ip 地址。

最后单击一下这个就行。

连接成功。


2.6.Linux 和 Windows 目录结构对比
  • Linux系统中的目录
    • / 是所有目录的顶点
    • 目录结构像一颗倒挂的树


2.7.Linux 目录介绍
  • bin 存放二进制可执行文件
  • boot 存放系统引导时使用的各种文件
  • dev 存放设备文件
  • etc 存放系统配置文件
  • home 存放系统用户的文件
  • lib 存放程序运行所需的共享库和内核模块
  • opt 额外安装的可选应用程序包所放置的位置
  • root 超级用户目录
  • sbin 存放二进制可执行文件,只有 root 用户才能访问
  • tmp 存放临时文件
  • usr 存放系统应用程序
  • var 存放运行时需要改变数据的文件,例如日志文件


3.Linux 常用命令
3.1.Linux 命令初体验
3.1.1.几个常用命令
序号命令对应英文作用
1lslist查看当前目录下内容
2pwdprint work directory查看当前目录
3cd [目录名]change directory切换目录
4touch [文件名]touch若文件不存在,则新建文件
5mkdirmake directory创建目录
6rm [文件名]remove删除指定文件

3.1.2.注意事项

在执行 Linux 命令时,若提示信息显示为乱码,一般多为编码问题导致。

只需要修改 Linux 的编码即可

  1. 把 'LANG="en_us.UTF-8"' 追加到 /etc/profile 中去。
echo 'LANG="en_us.UTF-8"' >> /etc/profile
  1. 重新加载配置文件,使得新增的配置生效
source /etc/profile

3.1.3.使用技巧
  • Tab 键自动补全
  • 连续两次 Tab 键,给出操作提示
  • 使用上下箭头快速调出曾经使用过的命令
  • 使用 clear 命令或者 Ctrl + l 快捷键实现清屏

3.1.4.命令格式
command [-options] [parameter]

命令格式的说明

  • command:命令名
  • [-options]:选项,可用来对命令进行控制,也可以省略
  • [parameter]:传给命令的参数,可以是零个、一个或者多个
  • 其中 [] 代表可选,且命令名 ,选项 ,参数之间需用空格进行分隔

3.2.文件目录操作命令
3.2.1.ls
  • 作用:显示指定目录下的内容
  • 语法:ls [-al] [dir]
  • 说明
    • -a 显示所有文件及目录(像 .文件名 这样的 隐藏文件 也会列出)
    • -l 除文件名称外,同时将文件型态(d 表示目录,- 表示文件)、权限、拥有者、文件大小等信息详细列出
  • 注意:由于我们使用 ls 命令时经常需要加入 -l 选项,所以 Linux 为 ls -l 命令提供了一种简写方式,即 ll


3.2.2.cd
  • 作用:用于切换当前工作目录,即进入指定目录
  • 语法:cd [dirName]
  • 特殊说明
    • ~ 表示当前用户的 home 目录
      • 不同用户的 home 目录可能不同,Linux 中的 root 用户的 home 目录即为 /root
    • . 表示目前所在的目录
    • .. 表示目前目录位置的上级目录
  • 举例
    • cd ..:切换到当前目录的上级目录
    • cd ~:切换到用户的 home 目录
    • cd /usr/local: 切换到 /usr/local 目录

3.2.3.cat
  • 作用:用于显示文件内容
  • 语法:cat [-n] filaName
  • 说明: -n 表示由 1 开始对所有输出行数编号
  • 举例:cat /etc/profile 查看 /etc 目录下的 profile 文件内容

3.2.4.more
  • 作用:以分页的形式显示文件内容
  • 语法:more fileName
  • 操作说明:
    • 回车键:向下滚动一行
    • 空格键:向下滚动一屏
    • b:返回上一屏
    • q 或者 Ctrl + C:退出 more
  • 举例:more /etc/profile:以分页方式显示 /etc 目录下的 profile 文件内容

3.2.5.tail
  • 作用:查看文件末尾的内容
  • 语法:tail [-f] fileName
  • 说明
    • -f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出
  • 举例
    • tail /etc/profile:显示 /etc 目录下的 profile 文件末尾 10 行的内容
    • tail -20 /etc/profile:显示 /etc 目录下的 profile 文件末尾 20 行的内容
    • tail -f /itcast/my.log:动态读取 /itcast 目录下的 my.log 文件末尾内容并显示
  • 操作说明
    • tail [-f] fileName 动态读取时会霸屏,使用 Ctrl + C 退出即可。

3.2.6.mkdir
  • 作用:创建目录
  • 语法:mkdir [-p] dirName
  • 说明
    • -p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建。
  • 举例
  • mkdir itcast:在当前目录下,建立一个名为 itcast 的子目录
  • mkdir-p itcast/test
    • 在工作目录下的 itcast 目录中建立一个名为 test 的子目录,若 itcast 目录不存在,则建立一个

3.2.7.rmdir
  • 作用:删除空目录
  • 语法:rmdir [-p] dirName
  • 说明
    • -p:当子目录被删除后使父目录为空目录的话,则一并删除
  • 举例
  • rmdir itcast:删除名为 itcast 的空目录
  • rmdir-p itcast/test
    • 删除 itcast 目录中名为 test 的子目录。若 test 目录删除后 itcast 目录变为空目录,则也被删除
  • rmdir itcast:删除名称以 itcast 开始的空目录

3.2.8.rm
  • 作用:删除文件或者目录
  • 语法:rm [-rf] name
  • 说明
    • -r:将目录及目录中所有文件(目录)逐一删除,即递归删
    • -f:无需确认,直接删除
  • 举例
    • rm -r itcast/:删除名为 itcast 的目录和目录中所有文件,删除前需确认
    • rm -rf itcast/:无需确认,直接删除名为 itcast 的目录和目录中所有文件
    • rm -f hello.txt:无需确认,直接删除 hello.txt 文件

3.3.拷贝移动命令
3.3.1.cp
  • 作用:用于复制文件或目录
  • 语法:cp [-r] source dest
  • 说明
    • -r:如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
  • 举例
    • cp hello.txt itcast/:将 hello.txt 复制到 itcast 目录中
    • cp hello.txt ./hi.txt:将 hello.txt 复制到当前目录,并改名为 hi.txt
    • cp -r itcast/ ./itheimal:将 itcast 目录和目录下所有文件复制到 itheima 目录下
    • cp -r itcast public class JedisTest { @Test public void testRedis(){ //1.获取连接 Jedis jedis = new Jedis("localhost",6379); //2.执行具体的操作 jedis.set("username","xiaoming"); String value = jedis.get("username"); System.out.print("username:"); System.out.println(value); //jedis.del("username"); jedis.hset("myhash","addr","bj"); String hValue = jedis.hget("myhash", "addr"); System.out.print("key:myhash,field:addr,value:"); System.out.println(hValue); Set keys = jedis.keys("*"); for (String key : keys) { System.out.println(key); } //3.关闭连接 jedis.close(); } }
      • 控制台输出结果


      7.3.Spring Data Redis
      7.3.1.简单介绍
      • 在 Spring Boot 项目中,可以使用 Spring Data Redis 来简化 Redis 操作。

      • 相关 maven 坐标
      
          org.springframework.boot
          spring-boot-starter-data-redis
      
      

      • Spring Data Redis 中提供了一个高度封装的类:RedisTemplate
        • 其针对 jedis 客户端中大量 api 进行了归类封装,并将同一类型操作封装为 operation 接口
        • operation 接口的具体分类如下
          • ValueOperations:简单 K-V 操作
          • setOperations:set 类型数据操作
          • ZSetOperations:zset 类型数据操作
          • HashOperations:针对 map 类型的数据操作
          • ListOperations:针对 list 类型的数据操作

      7.3.2.项目准备工作
      1. 首先创建好这样的项目结构


      1. pom.xml
      
      
      
          4.0.0
          
              org.springframework.boot
              spring-boot-starter-parent
              2.4.5
              
          
      
          com.itheima
          springdataredis_demo
          1.0-SNAPSHOT
          
              1.8
          
      
          
              
                  org.springframework.boot
                  spring-boot-starter-test
                  test
              
              
                  junit
                  junit
              
              
                  org.springframework.boot
                  spring-boot-starter-data-redis
              
          
      
          
              
                  
                      org.springframework.boot
                      spring-boot-maven-plugin
                      2.4.5
                  
              
          
      
      

      1. application.yml

      resources 目录下的 application.yml

      spring:
        application:
          name: springdataredis_demo
        # Redis 相关配置
        redis:
          host: localhost
          port: 6379
          # password: 123456
          database: 0 # 操作的是 0 号数据库(redis 默认是一共有 16 个数据库)
          jedis:
            # Redis 连接池配置
            pool:
              max-active: 8 # 最大连接数
              max-wait: 1ms # 连接池最大阻塞等待时间
              max-idle: 4 # 连接池中的最大空闲连接
              min-idle: 0 # 连接池中的最小空闲连接
      

      1. SpringBoot 项目的启动类 App.java

      com/itheima/App.java

      package com.itheima;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      public class App {
          public static void main(String[] args) {
              SpringApplication.run(App.class, args);
          }
      }
      

      1. 配置类:RedisConfig.java

      使用 springboot 整合 redis 的专用客户端接口操作

      此处使用的是 SpringBoot 框架提供的 RedisTemplate

      RedisTemplate 在处理 key 和 value 时,会对其进行序列化操作

      这就会导致一些问题。

      比如:输入的 key 值是 city,但 redis 获得到的 key 值却是 xac]xedx00x05tx00x04city。

      此处提供了一个配置类,来专门处理 RedisTemplate 默认的序列化处理所导致的问题

      com/itheima/config/RedisConfig.java

      package com.itheima.config;
      
      import org.springframework.cache.annotation.CachingConfigurerSupport;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.data.redis.connection.RedisConnectionFactory;
      import org.springframework.data.redis.core.RedisTemplate;
      import org.springframework.data.redis.serializer.StringRedisSerializer;
      
      
      
      @Configuration
      public class RedisConfig extends CachingConfigurerSupport {
      
          @Bean
          public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
      
              RedisTemplate redisTemplate = new RedisTemplate<>();
      
              //默认的 Key 序列化器为:JdkSerializationRedisSerializer
              redisTemplate.setKeySerializer(new StringRedisSerializer());
              redisTemplate.setHashKeySerializer(new StringRedisSerializer());
      
              redisTemplate.setConnectionFactory(connectionFactory);
      
              return redisTemplate;
          }
      
      }
      

      其实使用 stringRedisTemplate 也可以解决这个问题,而且可以和客户端同步。

      不过 stringRedisTemplate 只能存储 string 类型的数据。


      1. 测试类:SpringDataRedisTest.java

      com/itheima/test/SpringDataRedisTest.java

      package com.itheima.test;
      
      import org.junit.Test;
      import org.junit.runner.RunWith;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.boot.test.context.SpringBootTest;
      import org.springframework.data.redis.connection.DataType;
      import org.springframework.data.redis.core.*;
      import org.springframework.test.context.junit4.SpringRunner;
      
      import java.util.List;
      import java.util.Set;
      import java.util.concurrent.TimeUnit;
      
      @SpringBootTest
      @RunWith(SpringRunner.class)
      public class SpringDataRedisTest {
      
          @Autowired
          private RedisTemplate redisTemplate;
          
      }
      

      7.3.3.string 类型数据操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testString() {
          redisTemplate.opsForValue().set("city123", "beijing");
      
          String value = (String) redisTemplate.opsForValue().get("city123");
          System.out.println(value);
      	
      	//设置值的同时,指定超时时间
          redisTemplate.opsForValue().set("key1", "value1", 10l, TimeUnit.SECONDS);
      
      	//这里旨在 setNX 的功能
      	//若设置的 key 值存在,该命令就不生效;反之,则生效
          Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent("city1234", "nanjing");
          System.out.println(aBoolean);
      }
      

      最终控制台输出的结果

      不过 10 秒后,key1 就不存在了。

      有兴趣的话,可以自行去 redis 客户端输入 keys * 命令来查看信息。


      7.3.4.hash 类型数据操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testHash() {
          HashOperations hashOperations = redisTemplate.opsForHash();
      
          //存值
          hashOperations.put("002", "name", "xiaoming");
          hashOperations.put("002", "age", "20");
          hashOperations.put("002", "address", "bj");
      
          //取值
          String age = (String) hashOperations.get("002", "age");
          System.out.println(age);
      
          //获得 hash 结构中的所有字段
          Set keys = hashOperations.keys("002");
          for (Object key : keys) {
              System.out.println(key);
          }
      
          //获得 hash 结构中的所有值
          List values = hashOperations.values("002");
          for (Object value : values) {
              System.out.println(value);
          }
      }
      

      idea 控制台输出的结果


      7.3.5.list 类型数据操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testList() {
          ListOperations listOperations = redisTemplate.opsForList();
      
          //存值
          listOperations.leftPush("mylist", "a");
          listOperations.leftPushAll("mylist", "b", "c", "d");
      
          //取值
          System.out.println("【mylist 的值】");
          List mylist = listOperations.range("mylist", 0, -1);
          for (String value : mylist) {
              System.out.println(value);
          }
      
          //获得列表长度 llen
          Long size = listOperations.size("mylist");
          int lSize = size.intValue();
          System.out.println("【返回 mylist ,且删除掉元素】");
          for (int i = 0; i < lSize; i++) {
              //出队列
              String element = (String) listOperations.rightPop("mylist");
              System.out.println(element);
          }
      }
      

      idea 控制台输出的结果


      7.3.6.set 类型的数据操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testSet() {
          SetOperations setOperations = redisTemplate.opsForSet();
      
          //存值
          setOperations.add("myset", "a", "b", "c", "a");
      
          //取值
          System.out.println("【第一次取值】");
          Set myset = setOperations.members("myset");
          for (String o : myset) {
              System.out.println(o);
          }
      
          //删除成员
          setOperations.remove("myset", "a", "b");
      
          System.out.println("【第二次取值】");
          //取值
          myset = setOperations.members("myset");
          for (String o : myset) {
              System.out.println(o);
          }
      
      }
      

      idea 控制台输出的结果


      7.3.7.zset 类型的数据操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testZset() {
          ZSetOperations zSetOperations = redisTemplate.opsForZSet();
      
          //存值
          zSetOperations.add("myZset", "a", 10.0);
          zSetOperations.add("myZset", "b", 11.0);
          zSetOperations.add("myZset", "c", 12.0);
          zSetOperations.add("myZset", "a", 13.0);
      
          //取值
          System.out.println("[第一次取值]");
          Set myZset = zSetOperations.range("myZset", 0, -1);
          for (String s : myZset) {
              System.out.println(s);
          }
      
          //修改分数
          zSetOperations.incrementScore("myZset", "b", 20.0);
      
          //取值
          System.out.println("[第二次取值]");
          myZset = zSetOperations.range("myZset", 0, -1);
          for (String s : myZset) {
              System.out.println(s);
          }
      
          //删除成员
          zSetOperations.remove("myZset", "a", "b");
      
          //取值
          System.out.println("[第三次取值]");
          myZset = zSetOperations.range("myZset", 0, -1);
          for (String s : myZset) {
              System.out.println(s);
          }
      }
      

      idea 控制台输出的结果


      7.3.8.通用的数据类型操作

      com/itheima/test/SpringDataRedisTest.java

      @Test
      public void testCommon() {
          //获取 Redis 中所有的 key
          System.out.println("[keys *]");
          Set keys = redisTemplate.keys("*");
          for (String key : keys) {
              System.out.println(key);
          }
      
          //判断某个 key 是否存在
          System.out.println("[exists key]");
          Boolean itcast = redisTemplate.hasKey("itcast");
          System.out.println(itcast);
      
          //删除指定 key
          redisTemplate.delete("myZset");
      
          //获取指定 key 对应的 value 的数据类型
          System.out.println("[type key]");
          DataType dataType = redisTemplate.type("myset");
          System.out.println(dataType.name());
      }
      

      idea 控制台输出的结果


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988035.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号