Redis

目录

安装Redis

1、yum安装redis

2、启动redis

3、操作redis

4、设置远程连接

Redis-分布式缓存

操作流程

SpringBoot集成Redis 实现分布式缓存

1、添加redis依赖

2、配置redis

3、手动操作redis

4、注解操作redis

SpringSession持久化

存储到Redis

添加依赖

修改配置

存储和读取代码


安装Redis

1、yum安装redis

yum -y install redis

2、启动redis

 redis-server /etc/redis.conf&

3、操作redis

redis-cli

4、设置远程连接

1.将redis配置文件下载到本地: redis 配置文件是linux下的/etc/redis.conf ;

2.将redis.conf中的“bind 127.0.0.1”注释掉;

3.将redis.conf中的“protected-mode yes”改为“protected-mode no” ;

4.将修改后的redis.conf 上传至liunx下的/etc目录;

5.使用命令“redis-cli shutdown”先关闭redis 服务,再使用“redis-server /etc/redis.conf &”启动redis服务;

6.云服务防火墙或是安全策略里面开发redis端口6379。

Redis-分布式缓存

操作流程

SpringBoot框架中可以直接操作Redis缓存

SpringBoot集成Redis 实现分布式缓存

1、添加redis依赖

或者在pom.xml中添加

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

2、配置redis

# redis连接的配置信息
spring.redis.host=101.42.46.10
spring.redis.port=6379
spring.redis.database=15

3、手动操作redis

@RestController
public class RedisController {
    //1.引入redis模板
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @RequestMapping("/set")
    public String setRedis(){
        stringRedisTemplate.opsForValue().set("username","baekhyun");
        return "redis存储成功!";
    }

    @RequestMapping("/get")
    public String getRedis(){
        String result=stringRedisTemplate.opsForValue().get("username");
        return result;
    }
}

前端效果

 

 

4、注解操作redis

@Cacheable:查询/添加;判断 redis是否有缓存,如果没有那么就把当前方法返回值存到redis;如果存在缓存直接返回。

@CachePut:修改;将方法返回值更新到redis 缓存中。

@CacheEvict:删除;将redis 中对应的缓存删除。

@RestController
public class RedisAnnController {
    //存入或读取内存
    @RequestMapping("/ann-get")
    @Cacheable(value = "spring.cache",key = "#name+'-'+#pnumber")
    public String get(String name,String pnumber){
        if (!StringUtils.hasLength(name) || !StringUtils.hasLength(pnumber)){
            return null;
        }
        System.out.println("执行了get方法");
        return "name="+name+"|pnumber"+pnumber;
    }

    //更新缓存
    @RequestMapping("/put")
    @CachePut(value = "spring.cache",key = "#name+'-'+#pnumber")
    public String put(String name,String pnumber){
        if (!StringUtils.hasLength(name) || !StringUtils.hasLength(pnumber)){
            return null;
        }
        System.out.println("执行了put方法");
        return "[name="+name+"<->pnumber"+pnumber+"]";
    }

    //redis缓存删除
    @RequestMapping("/del")
    @CacheEvict(value = "spring.cache",key = "#name+'-'+#pnumber")
    public void del(String name,String pnumber){
        System.out.println("执行了缓存删除");
    }
}

SpringSession持久化

存储到Redis

添加依赖

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

修改配置

spring.session.store-type=redis
server.servlet.session.timeout=1800
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=spring:session
spring.redis.host=101.42.46.10
spring.redis.password=
spring.redis.port=6379

存储和读取代码

@RestController
public class UserController {

    private final static String SESSION_KEY="USER_SESSION_KEY";

    @RequestMapping("/login")
    public String login(HttpSession session){
        //存储session到redis
        session.setAttribute(SESSION_KEY,"beakhyun");
        return "login success";
    }

    @RequestMapping("/get")
    public String get(HttpServletRequest request){
        String username="";
        HttpSession session= request.getSession(false);
        if (session!=null){
            //从redis中获取session用户
            Object userinfo=session.getAttribute(SESSION_KEY);
            if (userinfo!=null){
                return userinfo.toString();
            }
        }
        return username;
    }
}

前端效果

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值