Redis整合Springboot 快速上手(windows版)

 1. Redis是什么?

     Redis 是一款key-value存储结构的内存及NoSQL数据库。

 2.特点

  •   支持多种数据存储格式
  •   支持持久化
  •   支持集群

1.安装Redis

2.exe目录下 进入到cmd

3.输入启动命令 redis-server.exe redis.windows.conf(服务端启动命令)

                          redis -cli.exe 客户端启动命令

redis -cli
set key value  存储值
get key        取值
set key value2 修改值

hset keya a1 aa1
hset keya a2 aa2
hget keya a1
"aa1"
hget keya a2
"aa2"
hget keya a3
(nil)

 3.整合Springboot

  (1) 创建Spring项目时勾选Redis选项

(2) 创建坐标,导入对应的jar包

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

(3) 做相应的配置  yml

spring:
  redis:
    # 地址
    host: 172.16.234.121
    # 端口,默认为6379
    port: 6379
    # 数据库索引
    database: 0
    # 密码(如没有密码请注释掉)
    password: 1234
    # 连接超时时间
    timeout: 10s
    # 是否开启ssl
    ssl: false

 (4) 使用

@SpringBootTest
 public class SpringbootApplication {
    @AutoWired
    private RedisTemplate redisTemplate;
    
    @Test
    void set(){
        ValueOperation ops = redisTemplate.opsForValue();
        ops.set("age",18);    
    }

    @Test
    void get(){
        ValueOperation ops = redisTemplate.opsForValue();
        Object age = ops.get("age");    
        System.out.println(age);
    }
    //RedisTemplate 提供操作各种数据存储类型的接口API 如下举例为Hash类型
    @Test
    void set(){
        ValueOperation ops = redisTemplate.opsForHash();
        ops.put("info","a","aa");  //第一个值为key 第二个值为hashKey 第三个值是value    
    }

    @Test
    void get(){
        HashOperation ops = redisTemplate.opsForHash();
        Object val= ops.get("info","a");    
        System.out.println(val);
    }
 }

    这里有个问题就是在客户端的存的数据,和springboot这里设置的key-value值不能同步,根本原因是客户端所操作的数据是string类型,所以上面的redisTemplate就需要变一变了,不然在客户端是不能根据key查到springboot中设置的值的。按照如下方式修改:

@SpringBootTest
 public class SpringbootApplication {
    @AutoWired
    private StringRedisTemplate stringRedisTemplate;
    //去拿客户端设置的值
    @Test
    void get(){
        ValueOperation<String,String>  ops = stringRedisTemplate.opsForValue();
        String age = ops.get("age");    
        System.out.println(age);
    }
 }

总结:客户端 RedisTemplate 以对象作为key和value,内部对数据进行序列化

解决方法: StringRedisTemplate 以字符串作为key和value,与redis客户端操作等效

jedis技术

  使用步骤

  1. 导入包

<dependency>
   <groupId>redis.clients</groupId>
   <artifactId>jedis</artifactId>
</dependency>

2.配置:

spring:
  redis:
    host: localhost
    port: 6379
    client-type: jedis   //默认lettuce
    jedis:
      pool:
        max-active: 16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿土不土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值