zoukankan      html  css  js  c++  java
  • Redis数据库 : python与java操作redis

    redis 包

    from redis import *

    连接: r = StrictRedis(host='localhost', port='6379')

    读写:r.set('key','value')

    r.get('key')

    第二种方法: pipline(缓冲命令,一次执行)

    pip = r.pipline()

    pip.set('key','value')

    pip.get('key')

    pip.execute() ---用这个方法执行缓冲的语句

    ===========================================================================================

    java需要用 jedis包,如果需要用pool还需要commons-pool2包.

    Jedis jedis = new Jedis("ip", 端口);
    jedis.auth("root");
    .................

    使用池子:

    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(100); // 最大连接数
    config.setMaxIdle(10);  // 最大空闲连接数
    JedisPool pool = new JedisPool(config, "ip", 端口);
    Jedis jedis = pool.getResource();
    jedis.auth("root");
    .............................

     使用redis集群,一个JedisShardInfo就是一个redis服务器的信息:

    package com;
    
    import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
    import redis.clients.jedis.*;
    
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @author Zhai
     * 2019/04/01 16:56
     */
    
    public class JedisTest {
        public static void main(String[] args) throws URISyntaxException {
            GenericObjectPoolConfig config = new GenericObjectPoolConfig(); // config配置
            List<JedisShardInfo> infos = new ArrayList<>();
            JedisShardInfo info = new JedisShardInfo(new URI("redis://:qwe...@127.0.0.1:6379/1"));
            infos.add(info);
            ShardedJedisPool pool = new ShardedJedisPool(config, infos);
    
            ShardedJedis resource = pool.getResource();// 从连接池获取client
            if (resource == null) System.out.println("获取client出错");
            resource.set("key01", "value data");
            resource.expire("key01", 5); // 5秒之后清除
            resource.close();
            pool.close();
        }
    }

     ===================================================================================================================

    在spring boot中使用 spring data redis, 首先添加pom文件:

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

    application.properties 文件配置(单个redis节点):

    spring.redis.host=1.1.1.1
    spring.redis.port=6379
    spring.redis.password=123
    spring.redis.database=0

    添加bean(注意bean的名称必须为redisTemplate,这样才能覆盖默认配置):

        @Bean(name = "redisTemplate")
        public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory factory) {
            RedisTemplate<String, Object> template = new RedisTemplate<>();
            Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
            ObjectMapper mapper = new ObjectMapper();
            mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);//所有属性均可见
            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);//为null不参加序列化
            mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);//在Redis中存储对象类信息
            serializer.setObjectMapper(mapper);
            template.setKeySerializer(new StringRedisSerializer());
            template.setValueSerializer(serializer);
            template.setHashKeySerializer(new StringRedisSerializer());
            template.setHashValueSerializer(serializer);
            template.setConnectionFactory(factory);
            return template;
        }
  • 相关阅读:
    07 地图添加图层控制控件
    在VMwear软件中安装Cento 7虚拟机环境
    在VMwear软件下安装Windows2008系统虚拟机
    dubbox生产者与消费者案例
    Springboot 中的配置文件
    Spring Data JPA介绍与简单案例
    Spring Boot的Web配置
    dubbo整合SSM登录案例
    Spring的代理模式(静态,JDK,CGLIB)
    Spring域属性自动注入byName和byType
  • 原文地址:https://www.cnblogs.com/cccy0/p/9166563.html
Copyright © 2011-2022 走看看