Redis

目录

5 种常用数据类型介绍

Redis 常用命令

字符串操作命令(string)

哈希操作命令(hash)

列表操作命令(list)

集合操作命令(set)

有序集合操作命令(sorted set /zset)

通用命令

Spring Data Redis 使用方式

Redis 是一个基于内存的 key-value 结构数据库。

5 种常用数据类型介绍

Redis 存储的是 key-value 结构的数据,其中 key 是字符串类型,value 有 5 种常用的数据类型:

  • 字符串 (string):普通字符串,Redis 中最简单的数据类型
  • 哈希 (hash):也叫散列,类似于 Java 中的 HashMap 结构
  • 列表 (list):按照插入顺序排序,可以有重复元素,类似于 Java 中的 LinkedList
  • 集合 (set):无序集合,没有重复元素,类似于 Java 中的 HashSet
  • 有序集合 (sorted set /zset):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素

Redis 常用命令

字符串操作命令(string)

Redis 字符串类型常用命令:

  • SET key value:设置指定 key 的值
  • GET key:获取指定 key 的值
  • SETEX key seconds value:设置指定 key 的值,并将 key 的过期时间设为 seconds 秒
  • SETNX key value:只有在 key 不存在时设置 key 的值

哈希操作命令(hash)

  • HSET key field value:将哈希表 key 中的字段 field 的值设为 value
  • HGET key field:获取存储在哈希表中指定字段的值
  • HDEL key field:删除存储在哈希表中的指定字段
  • HKEYS key:获取哈希表中所有字段
  • HVALS key:获取哈希表中所有值

列表操作命令(list)

Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令:

  • LPUSH key value1 [value2]:将一个或多个值插入到列表头部
  • LRANGE key start stop:获取列表指定范围内的元素
  • RPOP key:移除并获取列表最后一个元素
  • LLEN key:获取列表长度

集合操作命令(set)

无序不重复

Redis set 是 string 类型的无序集合。集合成员是唯一的,集合中不能出现重复的数据,常用命令:

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

有序集合操作命令(sorted set /zset)

有序不重复

Redis 有序集合是 string 类型元素的集合,且不允许有重复成员。每个元素都会关联一个 double 类型的分数。常用命令:

  • ZADD key score1 member1 [score2 member2]:向有序集合添加一个或多个成员
  • ZRANGE key start stop [WITHSCORES]:通过索引区间返回有序集合中指定区间内的成员
  • ZINCRBY key increment member:有序集合中对指定成员的分数加上增量 increment
  • ZREM key member [member ...]:移除有序集合中的一个或多个成员

通用命令

Redis 的通用命令是不分数据类型的,都可以使用的命令:

  • KEYS pattern:查找所有符合给定模式 (pattern) 的 key
  • EXISTS key:检查给定 key 是否存在
  • TYPE key:返回 key 所储存的值的类型
  • DEL key:该命令用于在 key 存在时删除 key

Spring Data Redis 使用方式

操作步骤:
① 导入 Spring Data Redis 的 maven 坐标
② 配置 Redis 数据源
③ 编写配置类,创建 RedisTemplate 对象
④ 通过 RedisTemplate 对象操作 Redis

 

package com.sky.controller.admin;

import com.sky.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Slf4j
public class ShopController {

    public static final String KEY = "SHOP_STATUS";

    @Autowired
    private RedisTemplate redisTemplate;

    //设置营业状态
    @PutMapping("/{status}")
    public Result setStatus(@PathVariable Integer status){
        log.info("设置店铺的营业状态为:{}",status == 1 ? "营业中" : "打烊中");
        redisTemplate.opsForValue().set(KEY,status);
        return Result.success();
    }

    @GetMapping("/status")
    public Result<Integer> getStatus(){
        Integer status = (Integer) redisTemplate.opsForValue().get(KEY);
        log.info("获取店铺营业状态:{}",status == 1 ? "营业中" : "打烊中");
        return Result.success(status);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值