数据库专题 Redis 非关系型数据库 Redis基本类型和操作

本文深入讲解Redis五种核心数据类型:String、List、Set、ZSet和Hash的使用方法及应用场景,包括数据的增删改查操作,适用于初学者及进阶用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis基本类型和操作

Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)以及有序集合(Sorted Set)。以下是这些类型的简介及相应的基本操作。

1. 字符串(String)

单个key-value的存和取

  • SET key value:设置指定键的值。
  • GET key:获取指定键的值。

多个key-value的存和取

  • MSET key value [key value …]
  • MGET key [key …]

删除key

  • DEL key [key …]

  • INCR key:将键对应的整数值加一。

  • DECR key:将键对应的整数值减一。

自增自减

  • incr key:对key的结果进行自增
    -incrby key 3:对key的结果一次增加3

  • decr key:对key的结果进行自减

  • decrby key 3:对key的结果一次减3

2. 哈希(Hash)
  • HSET key field value:为哈希表中的字段赋值。
  • HGET key field:获取哈希表中字段的值。
  • HGETALL key:获取哈希表中所有的字段和值。
  • HDEL key field [field …]:删除
3. 列表(List)
  • LPUSH key value:将一个或多个值插入到列表头部。
  • RPUSH key value:将一个或多个值插入到列表尾部。
  • LRANGE key start stop:从列表中获取一段元素。 (stop是-1的话就是查到最后的一个数据)
  • LPOP key:从栈顶移除数据(一次移除一个)
  • LLEN key:查看列表的长度
  • DEL key:删除当前字段
4. 集合(Set 不能有重复的数据,无序)
  • SADD key member:向集合添加一个或多个成员。
  • SMEMBERS key:获取集合中的所有成员。
  • SISMEMBER key member:检查成员是否属于该集合。
  • SREM key member [member …]:删
  • DEL key:删除字段
5. 有序集合(Sorted Set)(ZSet)
  • ZADD key [NX|XX] [CH] [INCR] score member:向有序集合添加一个或多个成员。(例如:eg: zadd myset 1 rose 添加rose到myset集合排序为1)
  • ZRANGE key start stop [WITHSCORES]:返回有序集中指定区间内的成员,查询。
  • ZREM key member:移除有序集中的一个或多个成员。

Maven依赖

为了在Java项目中使用Redis,你需要添加Jedis作为依赖项。Jedis是Java语言的一个Redis客户端库。在你的pom.xml文件中添加如下依赖:

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

Java操作示例代码

以下是一些基于Jedis的Java操作示例代码:

初始化连接
import redis.clients.jedis.Jedis;

public class RedisExample {
    private Jedis jedis;

    public RedisExample() {
        // 连接到本地的 Redis 服务
        jedis = new Jedis("localhost", 6379);
        System.out.println("连接成功");
    }
}

单例操作redis
在这里插入图片描述
用连接池操作
在这里插入图片描述

字符串操作
public void stringOperations() {
    // 设置数据
    jedis.set("tutorial-name", "Redis tutorial");

    // 获取数据并打印出来
    String name = jedis.get("tutorial-name");
    System.out.println(name);  // 输出: Redis tutorial
}
哈希操作
public void hashOperations() {
    // 存储数据到哈希表 user 中
    jedis.hset("user:1000", "name", "John Doe");
    jedis.hset("user:1000", "age", "30");

    // 获取数据并打印出来
    Map<String, String> user = jedis.hgetAll("user:1000");
    System.out.println(user);  // 输出: {name=John Doe, age=30}
}
列表操作
public void listOperations() {
    // 向列表左侧添加数据
    jedis.lpush("tasks", "task1");
    jedis.lpush("tasks", "task2");

    // 向列表右侧添加数据
    jedis.rpush("tasks", "task3");

    // 获取列表的数据并打印出来
    List<String> tasks = jedis.lrange("tasks", 0, -1);
    System.out.println(tasks);  // 输出: [task2, task1, task3]
}
集合操作
public void setOperations() {
    // 添加元素到集合
    jedis.sadd("languages", "Java");
    jedis.sadd("languages", "Python");

    // 获取集合的所有元素
    Set<String> languages = jedis.smembers("languages");
    System.out.println(languages);  // 输出: [Java, Python]
}
有序集合操作
public void sortedSetOperations() {
    // 添加元素到有序集合
    jedis.zadd("students", 80, "Alice");
    jedis.zadd("students", 90, "Bob");

    // 获取有序集合的所有元素
    Set<String> students = jedis.zrange("students", 0, -1);
    System.out.println(students);  // 输出: [Alice, Bob]
}

部分内容由AI大模型生成,注意识别!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值