Redis总结及设置营业状态案例
Redis简介:
rRedis服务开启与停止:
服务开启:
在Redis配置文件中输入cmd进入命令行输入redis-server
redis-cli.exe -h -p:连接到redis服务
设置密码:在redis.windows.conf中找到requirepass 密码
服务停止:
在服务开启的界面按ctrl+c
Redis数据类型:
各种数据类型的特点:
Redis常用命令:
在java中操作Reids:
Redis的java客户端:
1.导入Spring Data Redis的maven坐标
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
2.配置Redis数据源
sky:datasource:driver-class-name: com.mysql.cj.jdbc.Driverhost: localhostport: 3306database: sky_take_outusername: rootpassword: CHC52099maintainTimeStats: trueredis:host: localhostport: 6379database: 10
3.编写配置类,创建RedisTemplate对象
package com.sky.config;import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration
@Slf4j
public class RedisConfiguration {@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {log.info("开始创建redis模板对象...");RedisTemplate redisTemplate = new RedisTemplate();//设置redis的连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);//设置redis的key序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}
}
4.通过RedisTemplate对象操作Redis
package com.sky.test;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.*;import java.util.concurrent.TimeUnit;@SpringBootTest
public class SpringDataRedis {@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void testRedisTemplate() {System.out.println(redisTemplate);ValueOperations valueOperations = redisTemplate.opsForValue();HashOperations hashOperations = redisTemplate.opsForHash();ListOperations listOperations = redisTemplate.opsForList();SetOperations setOperations = redisTemplate.opsForSet();ZSetOperations zSetOperations = redisTemplate.opsForZSet();}/*** 操作字符串类型的数据*/@Testpublic void testString() {redisTemplate.opsForValue().set("hello", "world");System.out.println(redisTemplate.opsForValue().get("hello"));redisTemplate.opsForValue().setIfAbsent("hello", "sky");redisTemplate.opsForValue().setIfPresent("hello", "sky",3, TimeUnit.MINUTES);}@Testpublic void testHash(){redisTemplate.opsForHash().put("sky","name","sky");redisTemplate.opsForHash().put("sky","age",18);System.out.println(redisTemplate.opsForHash().get("sky","name"));System.out.println(redisTemplate.opsForHash().get("sky","age"));}
}
设置营业状态:
需求说明:
controller层:
package com.sky.controller.admin;import com.sky.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {@Autowiredprivate RedisTemplate redisTemplate;/*** 设置店铺营业状态** @param status* @return*/@RequestMapping("/{status}")@ApiOperation("设置店铺状态")public Result setStatus(@PathVariable Integer status) {log.info("设置店铺状态为:{}", status == 1 ? "营业中" : "打烊了");redisTemplate.opsForValue().set("SHOP_STATUS", status);return Result.success();}@GetMapping("/status")@ApiOperation("获取店铺营业状态")public Result<Integer> getStatus() {Integer status = (Integer) redisTemplate.opsForValue().get("SHOP_STATUS");log.info("获取店铺营业状态为:{}", status == 1 ? "营业中" : "打烊了");return Result.success(status);}}
然后拿接口文档测试没有问题