Day05-苍穹外卖(redis初识)

前言:

今天写第五天的,浅浅记录下redis的一些常用操作和我的一些踩坑点

反正后面还要深入学┐(´-`)┌

 

今日所学:

  • redis基本使用(windows)
  • redis常用操作
  • Java中使用redis(一些踩坑点)

 

目录

1.redis基本使用

2. redis常用操作

2.1 字符操作

2.2 哈希操作

2.3 列表操作

2.4 集合操作

2.5 有序集合操作

2.6 通用模式

3.Java中使用redis(踩坑点)

 

1.redis基本使用

 

Redis是一个基于内存的key-value结构数据库,一般用于储存热点信息(数据量比较大),跟mysql搭配使用

1.1 启动redis服务

redis-server.exe redis.windows.conf

 

1.2 连接服务器

redis-cli.exe

 

记得都要在redis所在的目录下进行

 

2. redis常用操作

 

2.1 字符操作

 set, get, setex, setnx

注意点:

使用setex所设置的时间到了后相应的key-value会被删除

使用Setnx设置的key存在的话,将不会在设置,返回零

 

2.2 哈希操作

Hset, Hget, Hdel, Hkeys, Hvals

注意点:

key-value下value还能分为(filed-value),属于嵌套的键值对(二级键值对),相当于是key->{字段:值,字段:值,字段:值...}

这样的好处是更省内存且支持字段级操作

(注:同一个key中,filed是不能重复的,就相当于key不能重复一样)

 

2.3 列表操作

注意点:

这个列表指的是双向链表,并不是队列(队列只能一端进,另一端出)

命令的l开头,r开头指得是左操作和右操作

比如说LPOP key就是移除并获取列表的第一个元素

RPUSH key value1 value2 就是插入两个值到列表尾部

(注: 列表是唯一个同一个key中,value可以重复的)

 

2.4 集合操作

注意点:

       插入的值不能重复

 

2.5 有序集合操作

注意点:

跟集合一样member不能重复,不同点是他为每个元素关联了一个score,可以进行排序(默认按照score升序)

 

2.6 通用模式

注意点:

这里的pattern指的是一种模式

比如说keys * -> 查找所有key

Keys set* -> 查找开头带set的key(类似于匹配)

 

3.Java中使用redis(踩坑点)

先看一下redis的配置类,结构没什么好讲的,跟文件上传结构配置基本是一样的(Day03-苍穹外卖里的)

看懂了那个这个自然没有问题

 

我这里想着重讲一下这两行代码:

特别是第二行代码(课程上并没有,但是强烈建议写上),不同于key序列化器的只能处理字符串,这个序列器可以支持处理数字字符串对象等等

 

如果不加这个value序列化器,容易产生以下问题:

 

1. 序列化和反序列化类型不同

haskey,value传进去的是一串二进制数字,当你要取出他们的时候,会报以下错误:

这个就是因为配置的 StringRedisSerializer ​​只能反序列化字符串数据​​,但 Redis 中存储的可能是其他类型(如 JDK 序列化的二进制数据或 Set 结构),导致类型不兼容。

 

但是如果你设了GenericJackson2JsonRedisSerializer()序列类型问题,乱码问题,都能很好的解决:

 

 

2.类型转换异常

如果设置的是string序列器的话,传入Integer的status会报一个类型转换异常(Integer无法转换成String),而这个设置成GenericJackson2JsonRedisSerializer()也能很好解决,因为他支持数字

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值