Redis键值对数据库的基本操作

一、命令行模式工具

都是在客户端中执行的命令

功能命令
添加信息(设置key,value数据,可重复设值相当于修改)set key value (示例:set name wenmiao)
查询信息(根据key查value,不存在返回空nil)get key(示例:get name)
清除屏幕信息clear
帮助信息查阅help 命令名 / help @组名
退出指令quit / exit / ESC键

在这里插入图片描述

二、数据存储类型

redis的数据存储格式:redis本身是一个Map,其中所有数据都采用key:value的形式存储
数据类型是指value的类型,key一直是字符串类型

1.数据存储类型介绍

业务数据的特殊性:作为缓存使用

场景示例
原始业务功能设计秒杀、618活动、双1活动、排队购票
运营平台监控到的突发高频访问数据突发时政要闻,被强势关注的内容
高频、复杂的统计数据在线人数、投票排行榜
单服务器升级集群
session管理
token管理
2.string类型数据
2.1 基本命令

类似java的String类型,一个存储空间保存一个数据

功能命令
添加/修改数据set key value
获取数据get key
删除数据del key (删除成功返回 integer 1 ,删除失败返回 integer 0)
添加/修改多个数据mset key1 value1 key2 value2 key3 value3…
获取多个数据mget key1 key2 key3…
获取数据字符个数(字符串长度)strlen key
追加到原始信息后部(原始信息不存在就新建)append key value

在这里插入图片描述

2.2 单数据操作与多数据操作的选择

多数据操作只需要进行一次发送与接收,消耗时间短
注意:多数据操作指令中,一次发送消耗的时长很大,需要进行切割(如共1000数据,1次发送100个数据)

在这里插入图片描述

2.3 数值增减操作

分表:使用多张表存储同类型数据,但对应主键id必须保证统一,不能重复。要解决主键不能重复问题。


Oracle数据库解决主键不能重复问题的方案:使用sequence机制设定解决主键不重复问题。


MySQL数据库解决主键不能重复问题的方案是什么呢?

业务场景1:
redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
适用于所有数据库,且支持数据库集群


redis所有操作都是原子性的,采用单线程处理所有业务,命令一个一个执行,无须考虑并发带来的数据影响
string在redis内部存储默认是一个字符串,当遇到incr,decr时会转成数值型进行计算


注意:按数值进行数据操作,如果原始数据不能转成数值,或超越了redis数值上限范围,会报错:ERR value is not an integer or out of range
java中long型数据最大值是9223372036854775807,Long.MAX_VALUE

string做数值型计算的命令功能
incr keykey值自增1
incrby key incrementkey值增加increment,increment可正可负,负数为减
incrbyfloat key incrementkey值增加increment,加一个小数
decr keykey值减少1
decrby key incrementkey值减少increment,increment可正可负,负数为加

在这里插入图片描述

2.5 数据时效性设置

业务场景2:
redis用于控制数据的生命周期,通过数据是否失效控制业务行为,适用所有有时效性限定控制的操作


比如:
1.通过微信进行海选投票,每个微信号4小时只能投1票
2.电商热门产品3天后自动取消热门
3.和新闻热点的时效性等等


解决:
设置一个已经投过票的id,news_id:HB314790725,并设置一个时长,时长结束将整个id自动擦去即可

设置数据具有指定的生命周期功能
setex key seconds value设置一个秒级生命周期
psetex key milliseconds value设置一个毫秒级生命周期

在这里插入图片描述

2.6 string类型数据操作注意事项

在这里插入图片描述

2.6 string类型应用场景综合案例

业务场景3:
redis应用与各种结构型和非结构型高热度数据访问加速


比如:主页高频访问信息显示控制,如新浪微博大V主页显示粉丝数与微博数量


解决:
1.在redis中为大V用户设定用户信息,以用户主键和属性值为key,后台设定定时刷新策略
2.在redis中以json格式存储大V用户信息,定时刷新(也可以使用hash类型)
json格式的存储比较方便,但修改比较麻烦
在这里插入图片描述

key设置约定
表名:主键名:主键值:字段名
user:29892999:name

3.hash类型数据

类似java的HashMap类型
新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息
需求的存储结构:一个存储空间保存多个键值对数据 5
hash类型:底层使用哈希表结构实现数据存储
在这里插入图片描述

4.list类型数据

类似java的LinkedList类型

5.set类型数据

类似java的HashSet类型

6.sorted_set类型数据

类似java的TreeSet类型

7.数据类型实践案例
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值