【一周学完苍穹外卖】Day4 Redis入门和java中实现

目录

Redis

Redis简介

Redis安装

启动服务端

启动客户端

Value基本数据类型

常用命令

字符串操作命令

哈希操作命令

列表操作命令

集合操作命令

有序集合命令

通用命令

在java中配置Redis

1.在pom.xml文件导入Spring Data Redis的maven坐标

2.配置Redis数据源

3.编写配置类,创建Redis Template对象

4.通过Redis Template对象操作Redis

应用实例:店铺营业状态设置

产品原型

接口设计

代码实现


Redis

Redis简介

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

  1. 基于内存存储,读写性能高
  2. 适合存储热点数据(热点商品,资讯,新闻)
  3. 企业应用广泛

基于Redis超高的读写性能,可以认为Redis是对传统数据库的一个扩充。

Redis安装

启动服务端

启动客户端

注意!启动客户端时,服务端的界面是不能关闭的

Ctrl+C可以关闭服务端

Value基本数据类型

常用命令

字符串操作命令

哈希操作命令

列表操作命令

集合操作命令

有序集合命令

通用命令

在java中配置Redis

1.在pom.xml文件导入Spring Data Redis的maven坐标

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

2.配置Redis数据源

3.编写配置类,创建Redis Template对象

@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        //设置Redis连接工厂对象
        RedisTemplate redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置KEY的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;

    }

}

4.通过Redis Template对象操作Redis

@SpringBootTest
public class SpringDataRedisTest {

    @Autowired
    private RedisTemplate redisTemplate;


    @Test
    public void testRedisTemplate() {
        System.out.println(redisTemplate);
    }
    @Test
    public void testStringRedisTemplate() {
        ValueOperations valueOperations = redisTemplate.opsForValue();
        valueOperations.set("city", "北京");
        String city = (String) valueOperations.get("city");
        System.out.println(city);


    }
}

  注意:这里的测试要通过的话,Redis的服务端需要在本地启动

应用实例:店铺营业状态设置

产品原型

接口设计

1.设置营业状态

2.管理端查询状态

3.用户端查询状态

代码实现

@RestController("adminShopController")//可以用于区分同类名的controller
@RequestMapping("/admin/shop")
@Api(tags="商家营业状态")
@Slf4j
public class shopController {
    @Autowired
    private RedisTemplate redisTemplate;


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


    @GetMapping("/status")
    @ApiOperation("获取营业状态")
    public Result<Integer> getStatus(){
        Integer status = (Integer) redisTemplate.opsForValue().get("status");

        return Result.success(status);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值