Redis01

了解Redis

一、存储数据

java:声明变量、数组、集合(jvm的内存中,临时有效)
本地磁盘: 文件(java以 io流操作) 本地磁盘中存储 可以实现持久化
数据库:
sql 关系型数据库(sql语言 ddl、dml、dcl、dql) 库--->表---->行---->列
nosql 非关系型数据库(not only sql)
key---value键值对
key(String类型) value(数据库不同,value类型不同)
泛指非关系型的数据库,作为关系型数据库的补充。

二、redis 属于NOSQL的一种

  • Redis:Remote Dictionary Server(远程字典服务器)

  • 是完全开源免费的,用C语言编写的,遵守BSD协议,key-value数据库,内存数据库,NoSql数据库,缓存数据库。

  • 是一个高性能的(key/value)分布式内存数据库,基于内存运行,(高性能:官方提供测试数据,50个并发执行100000 个请求,读的速度是110000次/s,写的速度是81000次/s)。

  • 实际工作中用redis进行缓存数据实现

  • 并支持持久化NoSQL数据到磁盘,是当前最热门的NoSql数据库之一,一般用来处理并发高的数据操作。

在内存空间中存储数据(存取效率极高)

适合小批量数据的存储(运行内存)

适合频繁访问的,不经常更新的数据存储

三、Redis和MySQL的区别

对比维度RedisMySQL
类型内存数据库(NoSQL)关系型数据库(SQL)
数据存储键值存储(支持多种数据结构)表格形式存储(行和列)
性能极高(10万+/秒读写,内存操作)较高(依赖磁盘I/O和索引优化)
持久化可选(RDB快照/AOF日志)默认持久化(事务日志+数据文件)
查询语言无SQL,使用命令(如GETHGETSQL(SELECTJOIN等)
事务支持简单事务(无回滚)ACID事务(原子性、一致性等)
数据结构支持String, Hash, List, Set, Sorted Set等仅支持表结构
扩展性水平扩展(集群)垂直扩展(主从复制、分库分表)
适用场景缓存、会话存储、实时排行榜、消息队列复杂查询、事务处理、结构化数据存储
数据容量受内存限制(可配置逐出策略)受磁盘空间限制(支持TB级数据)
典型用途高速读写、临时数据持久化存储、业务数据

关键区别总结:

  1. 性能与持久化:Redis基于内存,适合高速访问;MySQL基于磁盘,保证数据安全。

  2. 数据模型:Redis灵活的数据结构 vs MySQL严格的表结构。

  3. 功能定位:Redis常作缓存/高速层,MySQL作为核心数据存储。

四、 redis能干什么

  • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

  • 模拟类似于HttpSession这种需要设定过期时间的功能

  • 发布、订阅消息系统

  • 定时器、计数器

  • 分布式锁

五、搭建redis环境

windows平台:

linux平台

下载镜像

docker pull redis:7.0.2

简单启动容器
docker run -id -p 6379:6379 --name redis7  redis:7.0.2  
进入到redis中,了解redis配置信息
设置共享目录和配置文件后启动容器
[root@hcss-ecs-b839 data]# ls /opt/redis/
redis.conf
[root@hcss-ecs-b839 data]# cat /opt/redis/redis.conf
requirepass 123456
[root@hcss-ecs-b839 data]# pwd
/usr/local/docker/data
[root@hcss-ecs-b839 data]# ls
docker run -id -p 6379:6379 --name redis7.2 -v  /opt/redis/redis.conf:/usr/local/bin/redis.conf -v  /usr/local/docker/data:/data  redis:7.0.2  redis-server /usr/local/bin/redis.conf

修改配置文件后,重启容器

docker restart redis7.2

客户端远程连接

cmd窗口中,切到redis-cli所在目录
​
redis-cli -h ip -p 端口号  
keys *  提醒你,需要认证
​
auth 123456  输入密码认证

六、了解redis的结构

  • Redis现在支持十种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合),stream(流),geospatial(地理),bitmap(位图),bitfield(位域),hyperloglog(基数统计)

  • Redis常用五种数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)(掌握

  • redis服务有16个数据库,dbid 0-15

  • 默认进入到第一个库,dbid为0的数据库

  • select [dbid] 可以进行数据库的切换

5.1. 对key的学习(掌握的)

  • keys * 把当前库中的所有的key 列出来

  • set k1 v1 保存key-value形式的数据,如果k1已经存在 新值覆盖旧值

  • del k1 删除键值是 k1的

  • EXISTS k1 判断键值为k1是否存在, 存在返回1, 不存在返回0

  • ttl k1 返回k1的过期时间, -1代表永久有效, -2代表已经过期了 ,如果过期,那么就自动清除

  • expire k2 20 给已经存在的k2设定有效期是20秒,单位秒

  • MOVE k1 1 把k1移到第2个数据库中

  • PERSIST k1 把已经存在设置了过期时间的k1设置为永久有效

重点题

1、redis的作用和使用场景
  • 作用:内存型键值数据库,支持数据持久化,提供高性能读写与丰富数据结构。

  • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

  • 模拟类似于HttpSession这种需要设定过期时间的功能

  • 发布、订阅消息系统

  • 定时器、计数器

  • 分布式锁

2、redis支持的数据类型有哪些?
类型描述示例场景
String文本/二进制数据缓存HTML片段、计数器
Hash键值对集合存储用户信息(字段:name, age)
List双向链表消息队列、最新消息列表
Set无序唯一集合共同好友、标签系统
Zset有序集合排行榜、延迟任务
Stream消息流日志收集、事件溯源
BitMap位图用户签到统计
HyperLogLog基数估算独立IP统计
GEO地理位置附近的人、位置搜索
3、redis针对key常见的通用命令有哪些?
keys *         把当前库中的所有的key 列出来
set k1 v1      保存key-value形式的数据,如果k1已经存在 新值覆盖旧值
del k1         删除键值是 k1的
EXISTS k1      判断键值为k1是否存在, 存在返回1, 不存在返回0
ttl k1         返回k1的过期时间, -1代表永久有效,  -2代表已经过期了 ,如果过期,那么就自动清除
expire  k2 20  给已经存在的k2设定有效期是20秒,单位秒
MOVE k1 2      把k1移到第2个数据库中
PERSIST  k1    把已经存在设置了过期时间的k1设置为永久有效
select 1       切换库
4、描述docker搭建nginx的基本步骤
docker pull nginx:1.25.0
​
docker run -id -p 80:80 --name nginx2 nginx:1.25.0
5、描述docker搭建mysql的基本步骤
docker pull mysql:8.0.30
​
docker run -id -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456qwe --name mysql8 mysql:8.0.30
6、描述docker搭建redis的基本步骤

拉取镜像:docker pull redis:7.0.2

启动容器:docker run -id -p 6379:6379 --name redis7 redis:7.0.2

设置共享目录和配置文件后启动容器

[root@hcss-ecs-b839 data]# ls /opt/redis/
redis.conf
[root@hcss-ecs-b839 data]# vi /opt/redis/redis.conf
[root@hcss-ecs-b839 data]# cat /opt/redis/redis.conf
requirepass 123456   #在redis.conf中写入的内容,用来设置密码
[root@hcss-ecs-b839 data]# pwd
/usr/local/docker/data
[root@hcss-ecs-b839 data]# ls
docker run -id -p 6379:6379 --name redis7.2 -v /opt/redis/redis.conf:/usr/local/bin/redis.conf -v  /usr/local/docker/data:/data  redis:7.0.2  redis-server /usr/local/bin/redis.conf

修改配置文件后,重启容器

docker restart redis7.2

客户端远程连接

cmd窗口中,切到redis-cli所在目录
​
redis-cli -h ip -p 端口号  
keys *  提醒你,需要认证
​
auth 123456  输入密码认证
7、docker针对容器、镜像常见的各种命令有哪些?

与镜像相关:

docker images  查看本地镜像
docker pull 镜像名:版本号    拉取镜像
docker rmi 镜像名:版本号|镜像id   删除镜像

与容器相关的:

1、创建并启动容器
docker run -id -p 8080:8080 -v /webapps:/usr/local/tomcat/webapps --name 容器名称  tomcat:9.0.10
2、查看本地所有相关容器(包含停止的容器)
docker ps -a
3、查看当前正在运行的容器
docker ps
4、查看容器运行日志
docker logs  -f  -t  --tail n  容器ID    查看容器日志 (--tail 数字 显示最后多少条)
5、进入到容器内部
docker exec -it 容器id|名称 /bin/bash
6、停止容器
docker kill 容器名|容器id
7、删除容器
docker rm 容器名|容器id

数据卷:共享数据(宿主机和容器之间数据共享)

-v /webapps:/usr/local/tomcat/webapps   宿主机目录:容器内部目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值