springboot里面使用redis

						springboot里面使用redis
开发工具与关键技术:Java springboot 
作者:熊俊杰
撰写时间:2021.6.8

Redis的五种基本数据类型

Redis-key:

keys * 查看当前库所有的key
exists name 判断namekey 是否存在
move name 1 移除 name
expire name 10 设置name 10秒钟之后过期
ttl name 查看过期时间
type name 查看当前 key 的类型

1、String:

append 追加字符串
incr views 给 views 加1   内容必须是数据类型
decr views 给 views 减1
incrby views 给 views 加10
decrby views 给 views 减10
getrange 范围查询数据
setrange 范围修改
setnx name value ---- > 如果 name 不存在,创建 name 返回1,存在返回0
mset k1 v1 k2 v2    批量设置
mget k1  k2  同时获取多个值
msetnx 设置多个值 如果一个值设置失败,那么全部失败 (原子性)
getset 先获取在设置

2、List: 基本数据类型,列表

lpush 储存 《左存储》
rpush 储存 《右存储》
lrange 读取
lpop : 左移除
rpop : 右移除
lindex 通过下标获取值
llen 获取list的长度
lrem 删除 ‘精确匹配’
ltrim 修剪
rpoplpush 移除列表的最后一个元素 并移动到新的列表中
lset 将列表中指定下标的值替换为另外一个
linsert 将某一个具体的值插入列表某个元素的前后 
 ==参数==:`before 左、前 after 右、后

3、Set: set中的值不能重复

Sadd   ----> 给集合添加值
Smembers  -----> 查看当前集合元素
Sismember  -----> 查看集合是否有hello 有的话返回1 没有就是0
Scard   ------> 获取当前集合的个数
srem myset hello -----> 删除集合指定的值
Srandmember随机从集合中筛选一个数据
spop 随机删除一个元素
smove将一个指定的值移动到另外一个set集合中
SDIFF 查看2个集合的差集
SINTER 查看2个集合的交集 共同好友就可以实现
SUNION 查看2个集合的并集

4、Hash:Map集合,Key—Value ,—hash可以用于存储对象

hset map k changan ----> 给map存一个k-v
hget map k ----> 通过k取值
hmset map y king u anuyn ----> 给map存多个值
hmget map y u ----> 获取map多个值
hgetall map ------> 查看map所有的kv
hdel map u -----> 删除指定的 k
hlen map  ----->hlen 查询集合有几组kv
HEXISTS map k  ---查看集合的k是否存在
hkeys map  ----查看所有的key
hvals map ----查看所有的value
hset myhash field3 5 ----- >>> 指定增量
hsetnx myhash field4 hello ---->创建一个集合,如果这个集合没有数据就放入数据,返回1,如果有数据那么返回0
hash 用来处理变更的数据 user name age ,尤其是用户信息之类,经常变动的信息! hash 更适合与对象的存储,String 适合字符串的存储!

5、Zset(有序集合):在set的基础上加了一个值

zadd myset 1 one -----> 创建一个值
zadd myset 2 two 3 three -----> 创建2个值
zrange myset 0 -1 ------> 获取myset 里的数据 
zrangebyscore salary -inf +inf ---- > 通过集合salary 的 钱数排序 -inf 负无穷 +inf 正无穷---从低到高 进行排序
zrevrange salary 0 -1 ---从高到低 进行排序
zrangebyscore salary -inf +inf withscores -->> 查询出来所有数据 WITHSCORES会返回元素和其分数
zrem salary xiaohong --- 移除
zcard salary  ----获取集合中的个数
zcount myset 1 2 ----获取指定区间的成员数量

上面是redis 的五种基本数据类型的方法和使用!
现在需要如何在java里面使用,首先在pom.xml文件里添加

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

在配置文件application.properties里面配置redis的访问ip和端口,有密码也需要配置密码

#配置redis
spring.redis.port=6379
pring.redis.host=127.0.0.1
spring.redis.password=123456

在这里我们的redis传值RedisTemplate默认是<Object,Object>类型的,我们需要把RedisTemplate改为<String,Object>这样我们存储内容的时候可以不用转换,当我们调用的时候,直接使用我们自己封装好的模板。

//配置自己的 redis模板,
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
        //为了我们的开发方便,一般直接使用 <String,Object> ,默认是<Object,Object>
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);//设置连接池,连接redis
        //json序列化配置
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);//方法已经弃用
        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
        jackson2JsonRedisSerializer.setObjectMapper(om);

        // String 的序列化
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        // key 采用String 方式序列化
        template.setKeySerializer(stringRedisSerializer);
        // hash 的key 采用String 方式序列化
        template.setHashKeySerializer(stringRedisSerializer);
        // Value 采用Json 序列化
        template.setValueSerializer(jackson2JsonRedisSerializer);
        // hash 的 Value 采用Json 序列化
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }

在这里我们使用的redis框架里面的方法名称和redis的有些差距,所以我们需要创建一个工具类来封装redis的方法名,具体可以查看下面的,

https://www.cnblogs.com/zhzhlong/p/11434284.html

这个工具类里面的redisTemplate需要用我们刚刚封装好的那个。

在这里插入图片描述

自动装配redis工具类,调用具体的方法就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值