Redis 入门指南

Redis 入门指南

目录

Redis 入门指南

Redis 基本概念

Redis 常用命令

字符串String操作命令:

哈希Hash操作命令:

 列表list操作命令

 集合set操作命令:

有序集合sorted set 操作命令

通用命令

在Java中操作 Redis

1.Jedis

2.Spring Data Redis

总结


 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值、甚至json:

Redis(Remote Dictionary Server)是一个开源的内存数据存储系统,也被称为数据结构服务器。它提供了一个键值存储数据库,并支持多种数据结构,例如字符串、哈希、列表、集合和有序集合等。本文将介绍Redis的基本概念、常用命令以及如何在Java中操作Redis。

Redis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件

官网:https://redis.io

下载地址

Windows版下载地址:https://github.com/microsoftarchive/redis/releases

Linux版下载地址:https://download.redis.io/releases/

 [root@localhost local]# tar -zxvf redis-4.0.0.tar.gz 

Redis 基本概念

键值对

Redis是以键值对的形式存储数据的。每个键都是唯一的,并且可以关联多种不同类型的值。键和值都可以是字符串,但值也可以是其他数据结构,如哈希、列表、集合和有序集合。

数据结构

Redis支持多种数据结构,包括:

  • 字符串(string):存储字符串值。
  • 哈希(hash):存储键值对的散列。
  • 列表(list):按插入顺序存储的字符串元素列表。
  • 集合(set):无序、独立且不重复的字符串元素的集合。
  • 有序集合(sorted set):与集合类似,但每个元素都关联一个分数,使其可以按分数进行排序。

持久化

Redis可以将数据持久化到磁盘,以便在重启后恢复数据。它提供了两种持久化方式:快照(snapshotting)和日志(append-only file)。

Redis 常用命令

以下是Redis的一些常用命令:

字符串String操作命令:

  • SET key value:设置键值对。
  • GET key:获取键对应的值。
  • SETEX key [seconds] value: 设置指定key的值,并将key的过期时间设为senconds秒
  • SETNX key value:只有在key不存在时设置key的值
  • DEL key:删除键值对。

哈希Hash操作命令:

                

  • HSET key field value:在哈希表key中设置字段field的值设为value。
  • HGET key field :获取存储在哈希表中指定字段的值。
  • HDEL key field :删除存储在哈希表中的指定字段

  • HKEYS key :获取哈希表中所有字段(field区)

  • HVALS key :获取哈希表中所有值(value区)

  • HGETALL key :获取在哈希表中指定key的所有字段和值

 列表list操作命令

集合成员是不唯一的,可重复

              

  • LPUSH key value:将值插入列表的左侧。
  • RPUSH key value:将值插入列表的右侧。
  • LPOP key:从列表的左侧弹出值。
  • RPOP key :从列表的右侧弹出值。
  • LLEN key : 获取列表长度
  • BRPOP key1 [key2] timeout : 移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

                  

lrange mylist 0 -1,其中,lrange 是 Redis 的命令之一,用于获取指定 List 中指定范围的元素。mylist 是 List 的名称,0 表示起始索引,-1 表示结束索引。在 Redis 中,List 的索引从 0 开始,正数表示从左到右的索引,负数表示从右到左的索引。所以lrange mylist 0 -1 表示获取 List mylist 中从第一个元素到最后一个元素的范围。

 集合set操作命令:

集合成员是唯一的,无序的 

         

  • SADD key member:向集合中添加成员。
  • SMEMBERS key :获取集合中的所有成员。
  • SCARD key : 获取集合的成员数
  • SINTER key1 [key2] :返回给定所有集合的交集
  • SUNION key1 [key2] : 返回给定所有集合的并集
  • SDIFF key1 [key2]  :返回给定所有集合的差集  key1-key2
  • SREM key member1 [member2] : 移除集合中的一个或多个成员

有序集合sorted set 操作命令

  • 更多命令可以参考Redis中文网:https://www.redis.net.cn

通用命令

  • KEYS pattern: 查找所有符合给定模式(pattern)的key
  • EXISTS key : 检查给定key是否存在
  • TYPE key : 返回key所存储的值的类型
  • TTL key : 返回给定key的剩余生存时间(TTL,time to live) ,以秒为单位
  • DEL key : 该命令用于在key存在是删除key

在Java中操作 Redis

在Java中操作Redis,有以下三种常用的库:Jedis、Lettuce和Redisson。

1.Jedis

导入maven依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.6.0</version>
</dependency>

要在Java中操作Redis,我们可以使用Jedis客户端库。以下是一个简单的Java代码示例,展示了如何连接到Redis服务器并执行一些基本操作:

import redis.clients.jedis.Jedis;
public class JedisExample {public static void main(String[] args) {//1. 创建Jedis实例,指定Redis服务器的主机和端口Jedis jedis = new Jedis("localhost", 6379);// 连接Redis服务器jedis.connect();// 执行操作...jedis.set("username","ziyoujian");String value = jedis.get("username");System.out.println(value);// 关闭连接jedis.close();}
}

执行操作:通过Jedis实例,可以执行各种Redis的操作,如字符串操作、列表操作、集合操作、哈希操作和有序集合操作。

以下是一些基本操作的示例:

  • 字符串操作:
// 存储字符串
jedis.set("key", "value");
// 获取字符串
String value = jedis.get("key");
  • 列表操作:
    // 添加元素到列表的开头
    jedis.lpush("list", "value1", "value2");
    // 获取列表范围内的元素
    List<String> values = jedis.lrange("list", 0, -1);
  • 集合操作:
    // 添加元素到集合
    jedis.sadd("set", "value1", "value2");
    // 获取集合中的所有元素
    Set<String> values = jedis.smembers("set");
  • 哈希操作:
    // 存储哈希的字段和值
    jedis.hset("hash", "field1", "value1");
    // 获取哈希字段的值
    String value = jedis.hget("hash", "field1");
  • 有序集合操作:
    // 添加带有分数的元素到有序集合
    jedis.zadd("sortedSet", 1.0, "value1");
    jedis.zadd("sortedSet", 2.0, "value2");
    // 获取有序集合范围内的元素
    Set<String> values = jedis.zrange("sortedSet", 0, -1);

    需要根据具体的业务需求选择合适的操作。 以上是使用Jedis操作Redis的入门步骤和示例。你可以根据自己的需求和具体情况进行进一步学习和实践。

2.Spring Data Redis

1.导入Spring Data Redis库:首先,需要在你的Java项目中导入Spring Data Redis库。你可以使用构建工具如Maven或Gradle,在项目的pom.xml文件中添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

 2. 配置Redis连接信息:在Spring Boot项目中,你可以在application.propertiesapplication.yml文件中配置Redis的连接信息。示例配置如下

spring.redis.host=localhost 
spring.redis.port=6379

 下面是一个在单元测试中使用Spring Data Redis的示例:当你在使用RedisTemplate时,可以通过指定泛型来避免显式设置序列化器。默认情况下,Spring Data Redis会根据指定的泛型自动选择合适的序列化器。

@SpringBootTest
public class RedisExampleTest {@Autowiredprivate RedisTemplate<String, String> redisTemplate;@Testpublic void testRedisOperations() {// 存储字符串redisTemplate.opsForValue().set("key", "value");// 获取字符串String value = redisTemplate.opsForValue().get("key");assertEquals("value", value);}
}

在这个示例中,我们使用了@SpringBootTest注解来启动Spring Boot应用程序的上下文。通过@Autowired注解,我们将RedisTemplate注入到测试类中。 在testRedisOperations()方法中,我们进行了两个操作:

  • 使用opsForValue().set()方法将键值对存储到Redis中。
  • 使用opsForValue().get()方法从Redis中获取存储的值,并使用assertEquals()方法进行断言验证。 你可以根据需要在单元测试中执行其他Redis操作,如列表、集合、哈希和有序集合的操作,以及其他自定义操作。 请确保在单元测试之前已经正确配置了Redis连接信息,如在application.propertiesapplication.yml配置文件中添加了合适的Redis连接配置。 这个示例可以帮助你了解如何在单元测试中使用Spring Data Redis进行操作,并验证结果是否符合预期。你可以根据需要扩展和修改这个示例来适应你的具体需求。

以下是一些基本操作的示例:

  • 字符串操作:
// 存储字符串
redisTemplate.opsForValue().set("key", "value");
// 获取字符串
String value = redisTemplate.opsForValue().get("key");
  • 列表操作
    // 添加元素到列表的尾部
    redisTemplate.opsForList().rightPush("list", "value1");
    redisTemplate.opsForList().rightPush("list", "value2");
    // 获取列表范围内的元素
    List<String> values = redisTemplate.opsForList().range("list", 0, -1);
  • 集合操作:
    // 添加元素到集合
    redisTemplate.opsForSet().add("set", "value1", "value2");
    // 获取集合中的所有元素
    Set<String> values = redisTemplate.opsForSet().members("set");
  • 哈希操作:
    // 存储哈希的字段和值
    redisTemplate.opsForHash().put("hash", "field1", "value1");
    // 获取哈希字段的值
    String value = (String) redisTemplate.opsForHash().get("hash", "field1");
  • 有序集合操作:
    // 添加带有分数的元素到有序集合
    redisTemplate.opsForZSet().add("sortedSet", "value1", 1.0);
    redisTemplate.opsForZSet().add("sortedSet", "value2", 2.0);
    // 获取有序集合范围内的元素
    Set<String> values = redisTemplate.opsForZSet().range("sortedSet", 0, -1);

总结

我们可以使用Java来执行各种Redis操作,包括设置和获取键值对、操作哈希、列表、集合和有序集合等。 这就是关于Redis的入门指南,介绍了基本概念、常用命令以及在Java中操作Redis的示例。希望对你理解和使用Redis有所帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13915.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 中的 @EnableDiscoveryClient 注解

Spring Boot 中的 EnableDiscoveryClient 注解 Spring Boot 是一个快速开发 Spring 应用程序的框架&#xff0c;它提供了一些基础设施&#xff0c;使得我们可以快速地开发出高效、可靠的应用程序。其中&#xff0c;EnableDiscoveryClient 注解是 Spring Boot 中一个非常重要的…

抖音矩阵源码搭建开发技术部署分析

目录 一、 什么是抖音矩阵&#xff1f;源码搭建开发注意事项&#xff1f; 1. 抖音矩阵概述 2. 源码搭建开发注意事项&#xff1a; 二、 使用步骤及开发代码展示 一、 什么是抖音矩阵&#xff1f;源码搭建开发注意事项&#xff1f; 1. 抖音矩阵概述 首先&#xff0c;抖音账…

编码和调制

编码与调制 消息是以二进制的形式存放在数据当中的&#xff0c;这种数据的表现形式是信号&#xff0c;而信源发出的原始信号就叫做基带信号&#xff0c;基带信号又可以分为数字基带信号和模拟基带信号。 信号需要在信道中进行传输&#xff0c;信道分为模拟信道和数字信…

Vue操作Cookie

这里用的js-cookie。 很简单&#xff0c;安装一下就可以使用了。 npm install js-cookie --save 使用示例&#xff1a; import Cookies from js-cookieexport default {name: YourComponent,methods: {setCookie() {// 设置一个名为 name 的cookie&#xff0c;值为 value&a…

谈谈——互联网生活中的隐私保护

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

通信算法之173: 物理层峰均比PAPT

一. SC-FDMA技术 OFDM技术&#xff0c;能有效克服宽带通信系统中的频率选择性衰落&#xff0c;降低传输符号间干扰。但4G LTE标准&#xff0c;OFDMA只用在其下行传输&#xff0c;上行端采用了单载波频分复用技术&#xff08;single carrier frequency domain multiple access S…

软件DevOps云化发展的趋势 【课程限时免费】

你了解什么是DevOps吗&#xff1f; 它是怎么诞生的&#xff1f; DevOps能做些什么&#xff1f; 相信对于DevOps的实践者和关注者来说&#xff0c;对它已经不陌生了&#xff0c;但是对于刚刚进入开发者领域不久的小伙伴应该并不清楚&#xff0c;下面就让小智带你一起了解DevO…

多元回归预测 | Matlab主成分分析PCA降维,PLS偏小二乘回归预测。PCA-PLS回归预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab主成分分析PCA降维,PLS偏小二乘回归预测。PCA-PLS回归预测模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warn…

Spring核心 and 创建使用

Spring核心 and 创建使用 文章目录 Spring核心 and 创建使用一、Spring的定义1.1什么是IoC1.1.1 理解控制反转&#xff08;IoC&#xff09;1.1.2 控制反转式程序开发 1.2 使用Spring IoC核心功能2.1 DI的概念说明 二、Spring的创建和使用2.1 创建一个Maven项目2.2 添加Spring框…

CSDN1周年的创作纪念日【个人总结】

机缘 2022年的7月&#xff0c;第一次了解到这个平台。 得知这个平台可以实现以下功能&#xff1a; 例如&#xff1a; 实战项目中的经验分享日常学习过程中的记录通过文章进行技术交流… 收获 其实出发点是我自己整合笔记&#xff0c;顺带佛系分享给大家看&#xff0c;但是好…

厄尔尼诺,“烤热”新能源汽车市场?

在高温极端天气中&#xff0c;买新能源汽车的人变多了还是变少了&#xff1f; 7月4日&#xff0c;世界气象组织宣布&#xff0c;热带太平洋七年来首次形成厄尔尼诺条件&#xff0c;这可能导致全球气温飙升、破坏性天气和气候模式的出现。 注&#xff1a;1月底至6月初&#xff…

Spring Boot 中的 MyBatis 是什么,如何使用

Spring Boot 中的 MyBatis 是什么&#xff0c;如何使用 简介 MyBatis 是一种流行的 Java 持久化框架&#xff0c;可以将 SQL 查询映射到对象上&#xff0c;并提供了简单易用的 API 来执行 CRUD 操作。Spring Boot 可以与 MyBatis 集成&#xff0c;提供了简化配置和自动化配置…