Redis

Redis

1.课程安排

2.redis入门-nosql介绍

问题现象

  • 海量数据
  • 高并发

罪魁祸首-关系型数据库

  • 性能瓶颈:磁盘IO性能低下
  • 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群

解决思路

  • 降低磁盘IO次数,越低越好 --内存存储
  • 去除数据间关系,越简答越好 – 不存储关系,仅存储数据

Nosql

即Not-Only SQL(泛指非关系型的数据库),作为关系型数据库的补充。

作用:引用基于海量用户和海量数据前提下的数据初六问题。

特征:

  • 可扩展、可伸缩
  • 大数据量下高性能
  • 灵活的数据模型
  • 高可用

常见Nosql数据库:

  • Redis
  • memcache
  • HBase
  • MongoDB

解决方法(电商场景)

  1. 商品基本信息(mysql)
    • 名称
    • 价格
    • 厂家
  2. 商品附加信息(MongoDB)
    • 描述
    • 详情
    • 评论
  3. 图片信息(分布式文件系统)
  4. 搜索关键字(ES、Lucene、solr)
  5. 热点信息
    • 高频
    • 波段性

3.redis入门-redis简介

Redis

概念:Redis(Remote Dicionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库。

特征

  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s.
  4. 多数据类型支持
  • 字符串类型—String
  • 列表类型—list
  • 散列类型—hash
  • 集合类型—set
  • 有序集合类型—sorted_set
  1. 持久化支持,可以进行数据灾难恢复

Redis的应用

  • 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点咨询、推广类等高访问量等
  • 任务队列,如秒杀、抢购、购票排队等
  • 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等。
  • 时效性信息控制,如验证码控制、投票控制等。
  • 分布式数据共享,如分布式集群架构中的session分离。
  • 消息队列
  • 分布式锁

4.redis入门-redis下载安装

Linux版(适用于企业级开发)

  • Redis高级使用开始
  • 以4.0版本作为主版本

Windows版本(适合零基础学习)

  • Redis入门使用
  • 以3.2版本作为主版本
  • 下载地址:https://github.com/microsoftarchive/redis/tags
启动redis:
	服务端:双击redis-server.exe
	客户端:双击redis-cli.exe

5.redis入门-redis基础操作

命令行模式工具使用思考

  • 功能性命令
  • 清楚屏幕信息
  • 帮助信息查阅
  • 退出命令

信息添加

  • 功能:设置key,value数据
  • 命令:set key value
  • 范例:set name itheima

信息查询

  • 功能:根据key查询对应的value,如果不存在,返回空(nil)
  • 命令:get key
  • 范例:get name

image.png

清除屏幕信息

  • 功能:清除屏幕中的信息
  • 命令:clear

帮助

  • 功能:获取命令帮助
  • 命令

image.png

退出客户端命令

  • 功能:退出客户端
  • 命令:
quit
exit
<ESC>

6.数据类型-数据类型简介

业务数据的特殊性

作为缓存使用

  1. 原始业务功能设计
  • 秒杀

  • 618活动

  • 双11活动

  • 排队购票

    1. 运营平台监控的突发高频访问数据
  • 突发时政要闻,被强势关注围观

  1. 高频、复杂的统计数据
  • 在线人数
  • 投票排行榜

附加功能

系统功能优化或升级

  • 单服务器升级集群
  • Session管理
  • Token管理

Redis数据类型(5种常用)

  • string String
  • hash HashMap
  • list LinkedList
  • set HashSet
  • sorted_set TreeSet

7.数据类型-string基本操作

redis数据存储格式

  • redis自身是一个Map,其中所有的数据都是采用key:value的形式存储
  • 数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串

image.png

string类型

  • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
  • 存储数据的格式:一个存储空间保存一个数据
  • 存储内容:通常使用字符串,如果字符串以整数形式展示,可以作为数字操作使用

string类型数据的基本操作

  • 添加/修改数据:set key value
  • 获取数据:get key
  • 删除数据:del key

image.png

1.删除数据成功,返回1
2.删除数据失败,返回0

string类型数据的基本操作

  • 添加/修改多个数据:mset key1 value1 key2 value2…
  • 获取多个数据:mget key1 key2…
  • 获取数据字符个数(字符串长度):strlen key
  • 追加信息到原始信息后部(如果原始信息存在就是追加,否则新建):append key value

image.png

8.数据类型-单指令操作与多指令操作

9.数据类型-数值增减操作

string类型数据的扩展操作

  • 设置数值数据增加指定范围的值
incr key
incrby key increment
incrbyfloat key increment
  • 设置数值数据减少指定范围的值
decr key
decrby key increment

image.png

string作为数值操作

  • string在redis内部存储默认就是一个字符串,当遇到增减类型操作incr、decr时会转成数值型进行计算。
  • redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响
  • 注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis数值上限范围,将报错。9223372036854775807(Java中long型数据最大值,Long.MAX_VALUE)
    持续更新中…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coder-N

踏实 勤奋 努力 拼搏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值