当前位置: 首页 > article >正文

redis的客户端

目录

  • redis的客户端
    • 一:jedis
      • 1:jedis的使用步骤:
      • 2:jedis连接池
    • 二:springDataRedis
      • 1:入门使用
      • 2:配置序列化器
      • 3:stringRedisTemplate

redis的客户端

一:jedis

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1:jedis的使用步骤:

1:引入依赖

2:建立连接

3:执行命令;

4:释放资源:

private redis.clients.jedis.Jedis jedis;
@BeforeEach
 public void setJedis(){
     jedis =new redis.clients.jedis.Jedis("123.249.00.000",6379);
     jedis.auth("12345");
 }
 @Test
 public void testString(){
    jedis.set("name","zhangsan");
     System.out.println("jedis.get(\"name\") = " + jedis.get("name"));
 }
 @AfterEach
 public void down(){
    if (jedis!=null){
        jedis.close();
    }
 }

这里先建立连接,然后执行操作,操作的名称和我们redis命令的名称几乎一样,然后再释放资源,释放资源之前要判断是否为空,不然可能会空指针;

2:jedis连接池

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

public class JedisConnectionFactory {
    public static final  JedisPool jedisPool;
    static {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(8);
        jedisPoolConfig.setMinIdle(0);
        jedisPoolConfig.setMaxTotal(8);
        jedisPool =new JedisPool(jedisPoolConfig,"123.249.86.145",6379,1000,"12345");
    }
    public static Jedis getJedisPool(){
        return jedisPool.getResource();
    }
}

具体代码:先声明一个连接池对象,在静态代码块中对连接池对象进行初始化,要传入配置信息,首先构造一个配置对象,配置最大连接数,最小连接数,最大连接等待时长,然后在构造一个静态方法能够获取jedis对象,从连接池中获取;

二:springDataRedis

1:入门使用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何使用:

1:引入依赖:

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

2:在配置文件中配置redis相关配置:

spring:
  redis:
    host: ip
    port: 6379
    password: your_password
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 100ms

3:就能注入redistemplate来使用了:

@Autowired
private RedisTemplate redisTemplate;
@Test
void testString() {
    redisTemplate.opsForValue().set("name","伟哥");
    System.out.println("redisTemplate.opsForValue().get(\"name\") = " +
            redisTemplate.opsForValue().get("name"));
}

2:配置序列化器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
    //创建template对象
    RedisTemplate<String, Object> stringObjectRedisTemplate = new RedisTemplate<>();
    //连接工厂
    stringObjectRedisTemplate.setConnectionFactory(connectionFactory);
    //创建json序列化器
    GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
    //为key配置序列化器
    stringObjectRedisTemplate.setKeySerializer(RedisSerializer.string());
    //为hashkey配置
    stringObjectRedisTemplate.setHashKeySerializer(RedisSerializer.string());
    //为value配置序列化器
    stringObjectRedisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);
    //为hashvalue配置序列化器
    stringObjectRedisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);
    return stringObjectRedisTemplate;
}

3:stringRedisTemplate

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为了节省空间,我们不使用自动转换json的序列化器,我们需要手动转换,然后我们可以使用stringtemplate,这里面自动帮我们配置了string的序列化器;

@Test
void testUser() {
    User wfw = new User("wfw", 11);
    String jsonString = JSON.toJSONString(wfw);
    stringRedisTemplate.opsForValue().set("user:101",jsonString);
    String o =  stringRedisTemplate.opsForValue().get("user:100");
    User user = JSONObject.parseObject(o, User.class);
    System.out.println("o = " + user);
}
ing o =  stringRedisTemplate.opsForValue().get("user:100");
    User user = JSONObject.parseObject(o, User.class);
    System.out.println("o = " + user);
}

http://www.kler.cn/a/375402.html

相关文章:

  • 数据结构---------二叉树前序遍历中序遍历后序遍历
  • 环网冗余CAN转光纤 CAN光端机在风电项目应用
  • LeetCode:1387. 将整数按权重排序(记忆化搜索 Java)
  • YoloV8改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用
  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库
  • docker安装nginx,docker部署vue前端,以及docker部署java的jar部署
  • OpenCv —— 为opencv支持中文,将freetype2库编译进opencv中(附详细编译流程、测试代码)
  • T矩阵其实就是pauli基的乘,S矩阵中hv是体散射分量
  • vue3项目中el-tooltip实现内容溢出时再显示,并设置tip的最大宽度
  • 软件测试基础一(概述和核心内容)
  • 客户服务数据分析:洞察客户需求,优化服务策略
  • 软考:案例题分析1101
  • 数据结构之二叉树的收尾(性质)
  • leaflet绘制圆形方案
  • 软考(中级-软件设计师)数据库篇(1101)
  • opencv - py_imgproc - py_grabcut GrabCut 算法提取前景
  • ESP-HaloPanel:用 ESP32-C2 打造超低成本智能家居面板
  • 【机器学习】20. RNN - Recurrent Neural Networks 和 LSTM
  • 力扣题目解析--正则表达式匹配
  • 麒麟V10SP1部署postgresql+postgis+pgrouting
  • 从同样一个简单的计算问题,看星火4.0 Turbo模型推理逻辑能力
  • 小张求职记二:完善简历
  • 【CSS】——基础入门常见操作
  • 如何在 Ubuntu 16.04 上使用 UFW 设置防火墙
  • VsCode显示空格
  • 移远通信推出八款天线新品,覆盖5G、4G、Wi-Fi和LoRa领域