赞
踩
本篇文章属于快速入门使用java语言操作redis数据库,能够基本的对redis数据库进行操作,当然具体的指令还需去专门的学习,本篇文章也适合对redis有一定基础的,不然有些代码可能会看不懂,最后,创作不易,请各位一键三连(点赞,关注加收藏),让我有动力发布更多的作品,此外,希望这篇文章对各位读者有所帮助!!
在项目文件的pom.xml导入Spring Data Redis坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在项目里的application.yml文件里配制Redis数据源
spring:
redis:
host: localhost
port: 6379
password: 123456
database: 0
注意!!!!
这个地方配置的属性值应该根据自己的需求所定
在属性与属性值之间有空格!!
依次讲解各个属性的含义
host: localhost //我们要连接redis的ip地址
port: 6379 //端口号
password: 123456 //redis密码
database: 0 //数据库
以上的四个属性,前两个比较好理解重点讲解下下面两个
1.password
有些小伙伴有些疑问,什么密码,我下载redis的时候没配置密码啊?首先,redis和mysql一样,都有密码,区别是mysql需要配置用户名加密码,而redis只需要配置密码;其次,redis配置密码是在配置文件里面配置的。不记得密码的,文章补充中有解答
2.database
其实在我们下载数据库的时候,redis帮我们弄了16个数据库,名称分别从DB0到DB15,我们要使用哪个数据库,直接输入数字就行,比如database: 0表示我用的是DB0数据库,注意,每个数据库中的数据都是独立的。
3.补充 redis密码的设置
创建RedisTemplate对象
@Configuration//配置类说明
public class RedisConfiguration {
@Bean //为redisConnectionFactory自动注入 RedisConnectionFactory:redis工厂
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
RedisTemplate redisTemplate = new RedisTemplate();//创建RedisTemplate对象
redisTemplate.setConnectionFactory(redisConnectionFactory);//设置redis的连接工厂对象
redisTemplate.setKeySerializer(new StringRedisSerializer());//设置redis key的序列化器
return redisTemplate;
}
}
为什么要进行key序列化器?
原因:Java中对通过RedisTemplate对象操作Redis,会自动对输入进行序列化,很有可能出现乱码,这里是将key的类型要求序列化为String
在你需要操作redis的地方操作以下步骤。
//1.注入RedisTemplate对象
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testRedisTemplate(){
//2. 创建可以操作redis的对象
ValueOperations valueOperations = redisTemplate.opsForValue();//创建可以操作redis中 String 类型的对象
HashOperations hashOperations = redisTemplate.opsForHash();//创建可以操作redis中 哈希 类型的对象
ListOperations listOperations = redisTemplate.opsForList();//创建可以操作redis中 List 类型的对象
SetOperations setOperations = redisTemplate.opsForSet();//创建可以操作redis中 集合 类型的对象
ZSetOperations zSetOperations = redisTemplate.opsForZSet();//创建可以操作redis中 有序集合 类型的对象
//3.执行你需要的操作
String类型
//redis命令 -> Spring Data Redis命令
setex -> valueOperations.set(key,value,timeout,unit)//timeout:时间;unit,单位(通过TimeUnit类来选择时间单位)
setnx -> setIfAbsent(key,value) //value:java代码中的value是Object类型的,可以自动将输入序列化为redis中的五种类型。
哈希类型
//redis命令 -> Spring Data Redis命令
hset -> hashOperations.put(key,hashKey,value)
hget -> hashOperations.get(key,hashKey)
hdel -> hashOperations.delete(key,hashKey)
hkeys -> hashOperations.keys(key)
hvals -> hashOperations.values(key)
列表类型
//redis命令 -> Spring Data Redis命令
lpush -> listOperations.leftPushAll(key,value1,value2...)//一次插入多个
listOperations.leftPush(key,value)//一次插入一个
lrange -> listOperations.range(key,start,end)
rpop -> listOperations.rightPop(key)
llen -> listOperations.size(key)
集合类型
//redis命令 -> Spring Data Redis命令
sadd -> setOperations.add(key,value1,value2...)
smembers -> setOperations.members(key)
scard -> setOperations.size(key)
sinter -> setOperations.intersect(key,otherkey)
sunion -> setOperations.union(key,otherkey)
srem -> setOperations.remove(key,values)
有序集合类型
//redis命令 -> Spring Data Redis命令
zadd -> zSetOperations.add(key,value,score)
zrange -> zSetOperations.range(key,start,end)
zincrby -> zSetOperations.incrementScore(key,value,dalta)
zrem -> zSetOperations.remove(key,values)
通用命令
//redis命令 -> Spring Data Redis命令
keys -> redisTemplate.keys(pattern)
exists -> redisTemplate.hasKey(key)
type -> redisTemplate.type(key)
del -> redisTemplate.remove(key)
ys -> redisTemplate.keys(pattern)
exists -> redisTemplate.hasKey(key)
type -> redisTemplate.type(key)
del -> redisTemplate.remove(key)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。