NoSQL编程

NoSQL编程

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

导入redis依赖

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

自动配置

ReidsAutoConfiguration

//属性配置类
@EnableConfigurationProperties({RedisProperties.class})
//连接工厂LettuceConnection,JedisConnection
@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})

@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
public RedisTemplate<Object, Object>   redisTemplate(RedisConnectionFactory redisConnectionFactory) 
{
   //RedisTemplate操作数据库
   RedisTemplate<Object, Object> template = new RedisTemplate();
   template.setConnectionFactory(redisConnectionFactory);
        return template;
   }
//RedisProperties类
@ConfigurationProperties(
    //所有属性配置为spring.redis.xxx
    prefix = "spring.redis"
)
public class RedisProperties {
    private int database = 0;
    private String url;
    private String host = "localhost";
    private String username;
    private String password;
    private int port = 6379;
    private boolean ssl;
    private Duration timeout;
    private Duration connectTimeout;
    private String clientName;
    private RedisProperties.ClientType clientType;
    private RedisProperties.Sentinel sentinel;
    private RedisProperties.Cluster cluster;
    private final RedisProperties.Jedis jedis = new RedisProperties.Jedis();
    private final RedisProperties.Lettuce lettuce = new RedisProperties.Lettuce();

Redis环境搭建

1、阿里云按量付费redis。经典网络

2、申请redis的公网连接地址

3、修改白名单 允许0.0.0.0/0 访问

配置Redis

配置url和client

spring:
  redis:          
  host:
  rbp1nc7reqesxisgxpipd.redis.rds.aliyuncs.com
  port: 6379
  password: lfy:Lfy123456 # 账号:密码
  #切换至Jedis
  client-type: jedis
      jedis:
        pool:
          max-active: 10

操作Redis数据库

工具类:StringRedisTemplate

@Autowired
StringRedisTemplate template;

@Test
 void redisTest(){
    ValueOperations<String,String> operations =  template.opsForValue();
    //给数据库放属性
    operations.set("hello","world");
    String uri = request.getRequestURI();
    //默认每次访问uri属性值就会计数+1
    template.opsForValue().increment(uri); 
    //从数据库获取属性
    String attributes = operations.get("hello");
    System.out.println(attributes);
    }
posted @ 2021-10-15 17:33  大帅爱编程  阅读(85)  评论(0)    收藏  举报