展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > SpringBoot集成Redis6.0的实现示例

SpringBoot集成Redis6.0的实现示例

Redis6.0引入多线程I/O、ACL权限控制及RESP3协议。SpringBoot通过添加依赖、配置连接池及序列化器集成Redis,实现字符串、哈希、列表等数据结构操作,支持事务与管道批量处理。结合缓存注解可提升应用性能,需防范缓存穿透与雪崩。

本文目录

    前言

    Redis 作为一款高性能的键值存储数据库,在缓存、会话管理、消息队列等场景中的地位,早已无需多言。而 Redis 6.0 的发布,更是带来了多线程 I/O、ACL 权限控制、RESP3 协议等一系列重磅更新。那么,当 Spring Boot 遇上 Redis 6.0,究竟能碰撞出怎样的火花?这篇文章将围绕集成方法和最佳实践展开,希望能帮你少走一些弯路。

    1. Redis 6.0 新特性

    1.1 多线程 I/O

    Redis 6.0 引入了多线程 I/O,主要解决了高并发场景下的网络处理瓶颈。说白了,就是让 Redis 在处理大量客户端请求时,不再那么“单薄”。

    # 查看 Redis 版本
    redis-server --version
    # 配置多线程 I/O
    # 在 redis.conf 中设置
    io-threads 4
    io-threads-do-reads yes

    1.2 ACL 权限控制

    ACL(Access Control List)的加入,让 Redis 的权限管理变得精细得多。你可以为不同用户分配不同的操作权限,这在多租户或安全要求较高的场景下尤为重要。

    # 创建用户并设置权限
    ACL SETUSER alice on >password ~* +@all
    # 查看用户权限
    ACL GETUSER alice
    # 登录验证
    AUTH alice password

    1.3 RESP3 协议

    RESP3 协议带来了更丰富的数据类型和更高效的通信方式,算是为后续的功能演进铺好了路。

    1.4 其他新特性

    • 客户端缓存:支持客户端缓存,减少网络往返
    • SSL 支持:内置 SSL 支持,提高安全性
    • 时间序列数据结构:优化时间序列数据的存储和查询

    2. Spring Boot 与 Redis 集成

    2.1 添加依赖

    集成工作,从引入依赖开始。Spring Boot 对 Redis 的支持非常成熟,只需要在 pom.xml 中加入对应的 starter 即可。

    
        org.springframework.boot
        spring-boot-starter-data-redis
    
    
    
        io.lettuce
        lettuce-core
    
    
    
        redis.clients
        jedis
    

    2.2 配置 Redis

    接下来是配置项。无论是单机、哨兵还是集群模式,Spring Boot 都提供了简洁的配置方式。这里以单机模式为例:

    spring:
      redis:
        host: localhost
        port: 6379
        password: password
        database: 0
        timeout: 10000
        lettuce:
          pool:
            max-active: 8
            max-wait: -1
            max-idle: 8
            min-idle: 0

    2.3 Redis 模板配置

    RedisTemplate 是 Spring Data Redis 的核心操作类。配置好序列化器,才能避免存入 Redis 的数据出现乱码或无法反序列化的问题。

    @Configuration
    public class RedisConfig {
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            RedisTemplate template = new RedisTemplate<>();
            template.setConnectionFactory(redisConnectionFactory);
            // 设置序列化器
            template.setKeySerializer(new StringRedisSerializer());
            template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
            template.setHashKeySerializer(new StringRedisSerializer());
            template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
            template.afterPropertiesSet();
            return template;
        }
        @Bean
        public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
            StringRedisTemplate template = new StringRedisTemplate();
            template.setConnectionFactory(redisConnectionFactory);
            return template;
        }
    }

    3. Redis 操作示例

    3.1 基本操作

    从字符串到哈希,从列表到集合,Spring Data Redis 对这些数据结构的操作都进行了封装,用起来相当顺手。

    @Service
    public class RedisService {
        private final RedisTemplate redisTemplate;
        private final StringRedisTemplate stringRedisTemplate;
        @Autowired
        public RedisService(RedisTemplate redisTemplate, StringRedisTemplate stringRedisTemplate) {
            this.redisTemplate = redisTemplate;
            this.stringRedisTemplate = stringRedisTemplate;
        }
        // 字符串操作
        public void setString(String key, String value) {
            stringRedisTemplate.opsForValue().set(key, value);
        }
        public String getString(String key) {
            return stringRedisTemplate.opsForValue().get(key);
        }
        // 哈希操作
        public void setHash(String key, String hashKey, Object value) {
            redisTemplate.opsForHash().put(key, hashKey, value);
        }
        public Object getHash(String key, String hashKey) {
            return redisTemplate.opsForHash().get(key, hashKey);
        }
        // 列表操作
        public void addToList(String key, Object value) {
            redisTemplate.opsForList().rightPush(key, value);
        }
        public List getList(String key) {
            return redisTemplate.opsForList().range(key, 0, -1);
        }
        // 集合操作
        public void addToSet(String key, Object value) {
            redisTemplate.opsForSet().add(key, value);
        }
        public Set getSet(String key) {
            return redisTemplate.opsForSet().members(key);
        }
        // 有序集合操作
        public void addToZSet(String key, Object value, double score) {
            redisTemplate.opsForZSet().add(key, value, score);
        }
        public Set getZSet(String key) {
            return redisTemplate.opsForZSet().range(key, 0, -1);
        }
    }
    

    3.2 事务操作

    Redis 的事务机制虽然简单,但配合 Spring 的 SessionCallback 使用,也能保证一组操作的原子性。

    @Service
    public class RedisTransactionService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisTransactionService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public void executeTransaction() {
            redisTemplate.execute(new SessionCallback() {
                @Override
                public Object execute(RedisOperations operations) throws DataAccessException {
                    operations.multi();
                    // 执行多个操作
                    operations.opsForValue().set("key1", "value1");
                    operations.opsForValue().set("key2", "value2");
                    operations.opsForValue().set("key3", "value3");
                    // 提交事务
                    return operations.exec();
                }
            });
        }
    }
    

    3.3 管道操作

    当需要批量操作时,管道(Pipeline)可以显著减少网络往返次数,提升吞吐量。

    @Service
    public class RedisPipelineService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisPipelineService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public List executePipeline() {
            return redisTemplate.executePipelined(new RedisCallback() {
                @Override
                public Object doInRedis(RedisConnection connection) throws DataAccessException {
                    RedisSerializer serializer = redisTemplate.getStringSerializer();
                    // 执行多个操作
                    connection.set(serializer.serialize("key1"), serializer.serialize("value1"));
                    connection.set(serializer.serialize("key2"), serializer.serialize("value2"));
                    connection.set(serializer.serialize("key3"), serializer.serialize("value3"));
                    return null;
                }
            });
        }
    }
    

    4. Redis 缓存集成

    4.1 缓存配置

    Spring 的缓存抽象层与 Redis 的集成,是提升应用性能的利器。通过简单的注解,就能实现声明式缓存。

    @Configuration
    @EnableCaching
    public class CacheConfig {
        @Bean
        public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
            RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofMinutes(10))
                .prefixCacheNameWith("cache:")
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new Jackson2JsonRedisSerializer<>(Object.class)));
            return RedisCacheManager.builder(redisConnectionFactory)
                .cacheDefaults(config)
                .build();
        }
    }

    4.2 使用缓存

    @Cacheable、@CachePut、@CacheEvict 这几个注解,几乎是日常开发中的标配。用起来简单,但背后的逻辑可不少,比如缓存穿透、缓存雪崩的防范,都需要在设计时考虑进去。

    @Service
    public class UserService {
        private final UserRepository userRepository;
        @Autowired
        public UserService(UserRepository userRepository) {
            this.userRepository = userRepository;
        }
        @Cacheable(value = "users", key = "#id")
        public User getUserById(Long id) {
            return userRepository.findById(id)
                .orElseThrow(() -> new UsernameNotFoundException("User not found"));
        }
        @CachePut(value = "users", key = "#user.id")
        public User sa veUser(User user) {
            return userRepository.sa ve(user);
        }
        @CacheEvict(value = "users", key = "#id")
        public void deleteUser(Long id) {
            userRepository.deleteById(id);
        }
    }

    5. Redis 消息队列

    5.1 配置消息监听器

    利用 Redis 的发布/订阅功能,可以快速实现一个轻量级消息队列。配置好监听器容器,一切就绪。

    @Configuration
    public class RedisMessageListenerConfig {
        @Bean
        public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory) {
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(redisConnectionFactory);
            return container;
        }
        @Bean
        public MessageListenerAdapter messageListenerAdapter() {
            return new MessageListenerAdapter(new RedisMessageListener());
        }
    }

    5.2 消息监听器

    public class RedisMessageListener implements MessageListener {
        @Override
        public void onMessage(Message message, byte[] pattern) {
            String channel = new String(message.getChannel());
            String body = new String(message.getBody());
            System.out.println("Received message from channel " + channel + ": " + body);
        }
    }

    5.3 发送消息

    @Service
    public class RedisMessageService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisMessageService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public void sendMessage(String channel, Object message) {
            redisTemplate.convertAndSend(channel, message);
        }
    }

    6. Redis 分布式锁

    6.1 实现分布式锁

    分布式锁是解决并发冲突的常见手段。基于 Redis 的 SETNX 命令和 Lua 脚本,可以构建一个可靠的分布式锁实现。

    @Service
    public class RedisLockService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisLockService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public boolean acquireLock(String lockKey, String requestId, long expireTime) {
            Boolean result = redisTemplate.opsForValue().setIfAbsent(lockKey, requestId, expireTime, TimeUnit.MILLISECONDS);
            return result != null && result;
        }
        public boolean releaseLock(String lockKey, String requestId) {
            String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";
            RedisScript redisScript = RedisScript.of(script, Long.class);
            Long result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), requestId);
            return result != null && result > 0;
        }
    }

    6.2 使用分布式锁

    @Service
    public class OrderService {
        private final RedisLockService redisLockService;
        @Autowired
        public OrderService(RedisLockService redisLockService) {
            this.redisLockService = redisLockService;
        }
        public void createOrder(Order order) {
            String lockKey = "order:lock:" + order.getProductId();
            String requestId = UUID.randomUUID().toString();
            try {
                if (redisLockService.acquireLock(lockKey, requestId, 5000)) {
                    // 执行业务逻辑
                    System.out.println("Acquired lock, processing order");
                    // 模拟业务处理
                    Thread.sleep(2000);
                } else {
                    throw new RuntimeException("Failed to acquire lock");
                }
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
                throw new RuntimeException(e);
            } finally {
                redisLockService.releaseLock(lockKey, requestId);
            }
        }
    }

    7. Redis 6.0 高级特性

    7.1 客户端缓存

    Redis 6.0 的客户端缓存特性,允许客户端在本地缓存部分数据,进一步降低网络延迟。不过,这个功能对客户端的实现要求比较高,需要谨慎评估。

    @Service
    public class RedisClientCacheService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisClientCacheService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public void enableClientCache() {
            // 启用客户端缓存
            redisTemplate.execute((RedisCallback) connection -> {
                connection.setClientName("client1");
                return null;
            });
        }
    }

    7.2 ACL 权限控制

    在 Spring Boot 中配置 Redis 的 ACL 认证,主要是在连接工厂层面设置好用户名和密码。

    @Configuration
    public class RedisAclConfig {
        @Bean
        public LettuceConnectionFactory redisConnectionFactory() {
            RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
            config.setHostName("localhost");
            config.setPort(6379);
            config.setPassword(RedisPassword.of("password"));
            config.setDatabase(0);
            LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                .commandTimeout(Duration.ofSeconds(10))
                .build();
            return new LettuceConnectionFactory(config, clientConfig);
        }
    }

    8. 最佳实践

    8.1 连接池配置

    连接池的配置需要根据业务压力来调整。以下是一个比较通用的配置示例,但具体数值还是需要结合压测结果来定。

    spring:
      redis:
        lettuce:
          pool:
            max-active: 100
            max-wait: 10000
            max-idle: 50
            min-idle: 10

    8.2 序列化配置

    序列化是 Redis 集成中极容易出问题的一环。推荐使用 Jackson2JsonRedisSerializer 并将 ObjectMapper 的 visibility 配置好,这样可以避免很多类型转换的坑。

    @Configuration
    public class RedisSerializationConfig {
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            RedisTemplate template = new RedisTemplate<>();
            template.setConnectionFactory(redisConnectionFactory);
            // 使用 Jackson2JsonRedisSerializer 序列化值
            Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class);
            ObjectMapper mapper = new ObjectMapper();
            mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
            mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
            serializer.setObjectMapper(mapper);
            template.setKeySerializer(new StringRedisSerializer());
            template.setValueSerializer(serializer);
            template.setHashKeySerializer(new StringRedisSerializer());
            template.setHashValueSerializer(serializer);
            template.afterPropertiesSet();
            return template;
        }
    }
    

    8.3 错误处理

    高可用架构中,Redis 发生故障是不可避免的。合理的错误处理机制,能防止一个 Redis 异常拖垮整个服务。

    @Service
    public class RedisErrorHandlingService {
        private final RedisTemplate redisTemplate;
        @Autowired
        public RedisErrorHandlingService(RedisTemplate redisTemplate) {
            this.redisTemplate = redisTemplate;
        }
        public Object getWithErrorHandling(String key) {
            try {
                return redisTemplate.opsForValue().get(key);
            } catch (RedisConnectionFailureException e) {
                // 处理连接失败
                System.err.println("Redis connection failed: " + e.getMessage());
                return null;
            } catch (RedisSystemException e) {
                // 处理系统错误
                System.err.println("Redis system error: " + e.getMessage());
                return null;
            }
        }
    }

    9. 案例分析

    9.1 缓存系统

    某电商系统使用 Redis 作为缓存,主要包括:

    1. 商品缓存:缓存商品信息,提高查询性能
    2. 用户缓存:缓存用户信息,减少数据库查询
    3. 订单缓存:缓存订单信息,提高订单处理速度
    4. 热点数据缓存:缓存热点商品数据,应对高并发

    9.2 会话管理

    某 Web 应用使用 Redis 管理会话,主要包括:

    1. 会话存储:将会话数据存储在 Redis 中
    2. 会话过期:设置会话过期时间,自动清理过期会话
    3. 会话共享:在多实例部署中实现会话共享

    9.3 消息队列

    某系统使用 Redis 作为消息队列,主要包括:

    1. 任务队列:处理异步任务
    2. 事件通知:发送系统事件通知
    3. 消息广播:向多个消费者广播消息

    10. 性能优化

    10.1 连接管理

    1. 使用连接池:配置合理的连接池大小
    2. 连接超时:设置合理的连接超时时间
    3. 连接验证:定期验证连接有效性

    10.2 数据结构选择

    1. 选择合适的数据结构:根据业务场景选择合适的 Redis 数据结构
    2. 避免大键:避免存储过大的键值对
    3. 使用管道:批量执行命令,减少网络往返

    10.3 缓存策略

    1. 缓存过期:设置合理的缓存过期时间
    2. 缓存预热:在系统启动时预热缓存
    3. 缓存更新:使用合适的缓存更新策略

    11. 监控与维护

    11.1 监控指标

    1. 内存使用:监控 Redis 内存使用情况
    2. 命令执行:监控命令执行次数和耗时
    3. 连接数:监控 Redis 连接数
    4. 命中率:监控缓存命中率

    11.2 维护操作

    1. 数据备份:定期备份 Redis 数据
    2. 数据清理:清理过期数据和无用数据
    3. 性能优化:根据监控结果优化 Redis 配置

    12. 未来趋势

    12.1 Redis 7.0 新特性

    Redis 7.0 带来了许多新特性,如:

    • 时间序列数据结构:更强大的时间序列数据支持
    • RDB 快照改进:更高效的 RDB 快照
    • 内存管理改进:更智能的内存管理

    12.2 Spring Data Redis 改进

    Spring Data Redis 不断改进,提供更强大的功能:

    • 反应式支持:更好的反应式编程支持
    • 函数式编程:支持函数式编程风格
    • 更丰富的 API:提供更丰富的 Redis 操作 API

    结语

    Spring Boot 与 Redis 6.0 的集成,是构建高性能、可扩展应用的重要一环。从新特性的理解,到集成方案的落地,再到性能优化和监控维护,每一步都值得深入琢磨。希望这篇文章能帮你建立起一个清晰的技术框架,在实际项目中能更从容地应对各种挑战。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    网站备案号:苏ICP备2026018738号-1 联系邮箱:bd@zhengruan.com

    Copyright ©2018-2026