Redis入门
Redis简介
Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,属于非关系型数据库
# 1. 数据类型
- 字符串:String(常用)
- 哈希:hash(适合存储对象)
- 列表:list(任务队列)
- 集合:set
- 有序集合:sorted set(排行榜)
# 2. 常用命令
① 字符串
- nil 表示为空;
- 如果key值相同的情况下,后设置的值会覆盖之前设置的值
② 哈希
③ 列表
列表元素为字符串,可以有重复元素
④ 集合
⑤ 有序集合
⑥ 通用命令
# 3. Spring Data Redis
概述
spring-data-redis是spring-data模块的一部分,专门用来支持在spring管理项目对redis的操作,使用java操作redis最常用的是使用jedis,但并不是只有jedis可以使用,像jdbc-redis jredis也都属于redis的java客户端,他们之间是无法兼容的,如果你在一个项目中使用了jedis,然后后来决定弃用掉改用jdbc-redis就比较麻烦了,spring-data-redis提供了redis的java客户端的抽象,在开发中可以忽略掉切换具体的客户端所带来的影响,而且他本身就属于spring的一部分,比起单纯的使用jedis,更加稳定.管理起来更加自动化
redis中默认有16个数据库(database),默认使用的是0号数据库,通过使用select id来改变使用的数据库
RedisTemplate对象可以通过Autowired自动注入,Springboot已经自动装配
注意:这样获取的RedisTemplate对象会对key和value值进行序列化,这样无法直接通过自定义的key获得value
解决方案:自定义RedisTemplate对象
特性
- 自动管理连接池,提供了一个高度封装的RedisTemplate类
- 针对jedis客户端的大量api进行了归类封装,把同一类型的操作封装成了operation接口.支持redis中的五种数据类型的操作.
- 针对数据的"序列化与反序列化",提供了多种可以选择的策略(RedisSerializer)
- JdkSerializationRedisserializer:当需要存储java对象时使用.
- stringRedisSerializer:当需要存储string类型的字符串时使用.
- JacksonJsonRedisSerializer:将对象序列化成json的格式存储在redis中,需要jackson-json工具的支持(目前我还没使用过,不了解)
关于redis在java里的操作详细查看: https://blog.csdn.net/weixin_56219549/article/details/119484442?ops_request_misc=&request_id=&biz_id=102&utm_term=springdataredis&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-119484442.nonecase&spm=1018.2226.3001.4187