SB集成Redis学习笔记之实际应用场景-java干货

本文介绍了Redis在SpringBoot项目中的应用,包括利用其特性进行简单计数、按时间统计、模糊Key值查询等场景。详细讲解了Redis的Strings、Hashs、Lists、Sets和Sorted Sets数据结构及其在不同场景下的使用,例如使用Hashs存储和修改Java对象,使用Lists进行有序存储,以及Sorted Sets的排序功能。

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

个人博客:http://z77z.oschina.io/

此项目下载地址:https://git.oschina.net/z77z/springboot_mybatisplus

Redis的特性

  • Strings:Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.
    常用命令: set,get,decr,incr,mget 等。
    常用方法:

    1. 获取字符串长度
    2. 往字符串append内容
    3. 设置和获取字符串的某一段内容
    4. 设置及获取字符串的某一位(bit)
    5. 批量设置一系列字符串的内容
  • Hashs:Redis Hash对应Value内部实际就是一个HashMap,常用命令:hget,hset,hgetall 等。

  • Lists:Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。
    常用命令:lpush,rpush,lpop,rpop,lrange等。

  • Sets:Sets 集合的概念就是一堆不重复值的组合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能。
    常用命令:sadd,spop,smembers,sunion 等。

  • Sorted Sets:Redis sorted set的使用场景与set类似,区别是set不是自动有序的。sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。
    常用命令:zadd,zrange,zrem,zcard等

下面就根据这几个特性,也就是Redis支持的数据类型,来完成以下场景的实现。

场景一:简单计数功能

Redis是一个很好的计数器,计数器是 Redis 的原子性自增操作可实现的最直观的模式了,它的想法相当简单:每当某个操作发生时,向 Redis 发送一个 INCR 命令。使用场景比如网站的访问数,注册用户数,文章的点赞数,高并发的秒杀活动,分布式序列号生成等等统计计数的功能实现。Redis 解决这类计数问题得心应手,相比关系数据库速度更快,消耗资源更少。还可以通过set()方法来重置计数。

// 简单计数
    @Test
    public void test1() {
        try {
            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
            //计数前打印
            System.out.println(opsForValue.get("test1"));
            for (int i = 0; i < 100; i++) {
                //计数,第一个参数为key值,第二个参数为每次增加计数的单位
                opsForValue.increment("test1", 1);
            }
            //计数后打印
            System.out.println(opsForValue.get("test1"));
        } catch (Exception e) {
            e.printStackTrace();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值