NoSQL编程
NoSQL编程
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(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);
}

浙公网安备 33010602011771号