文章目录
Redis
Redis
是一个开源的,使用C语言编写的,支持网络交互的,内存中的 Key-Value 数据结构存储系统,支持多种语言,它可以用作数据库、缓存和消息 中间件。
高性能: 数据存储在内存中,直接访问内存
键值对: 新闻id(键) : 点赞数量(值)
商品id : {id:1000,name:"华为手机",price:3000}
非关系型数据库 : 数据存储是键值对的, 没有二维表关系 不使用sql操作
使用redis作为缓存, 将一些访问量大,或者修改较少的数据使用redis存储起来,
对mysql形成保护.原理如下:

特点
- Redis将数据存储在内存中,也支持数据的持久化,可以将内存中的数据保持 在磁盘中,重启的时候可以再次加载进行使用。
- 性能极高, Redis能读的速度是110000次/s,写的速度是81000次/s 。
- Redis供list,set,zset,hash 等数据结构的存储。
- 原子-- Redis的所有操作都是原子性的,同时Redis还支持对几个操作全 并后的原子性执行。
- Redis分布式集群化扩展性极高,即master-slave(主-从)模式。
为什么使用Redis
随着web3.0的时代到来,传统的关系型数据库在大量的访问压力出现了一些 性能问题,如连接数量问题,IO瓶颈问题等,此时需要使用redis对部分数据进行缓 存,或者将某些数据直接存储在redis中,以减少对关系型数据库的访问压力. 当然redis数据库也是不能完全替代关系型数据库的,他们是相互依赖的.
Linux下Redis安装
创建redis配置文件和数据映射挂载卷
mkdir -p /opt/redis/conf
mkdir -p /opt/redis/data

将redis.conf
文件拖入conf文件夹
连接密码

注释掉bind 127.0.0.1即可远程连接

拉取镜像
docker pull redis:6.0

安装命令
docker run -d -p 6379:6379 \
--name redis \
--restart=always \
--privileged=true \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/redis/data:/data \
redis:6.0

连接redis方法
1.命令连接
1.1进入redis终端
docker exec -it redis bash
1.2进入redis命令行
redis-cli

进入成功
2.安装Redis桌面端

3.连接Redis

Redis数据结构
Redis结构分为String、hash、list、set、zset(有序集合)
String字符串
- string 是 redis 最基本的类型,一个 key 对应一个 value。
- string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比 如jpg图片或者序列化的对象。
- string 类型是 Redis 最基本的数据类型,
- string 类型的值最大能存储 512MB。
单值缓存
set key value
get key
del key
keys *
单值缓存可以为json字符串
计数器
set news_views:1 设置文章访问量
incr news_views:1 文章访问量+1
decr news_views:1 文章访问量-1
get news_views:1 获得值
Hash(哈希)
redis hash
是一个 string 类型的 field 和 value 的映射表,hash 特别适合 用于存储对象.

List(列表)
Redis
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列 表的头部(左边)或者尾部(右边)。

Set(集合)
Redis 的 Set 是无序集合。
zset(有序集合)
redis zset 也是不允许重复的成员,但是是有序的。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为 集合中的成员进行从小到大的排序。 zset 的成员是唯一的,但分数(score)却可以重复。

设置值时设置有效时间
有时候我们并不希望redis的key一直存在。例如缓存,验证码等数据,我们希 望它们能在一定时间内自动的被销毁。redis提供了一些命令,能够让我们对key 设置过期时间,并且让key过期之后被自动删除.
set [key] [value] [EX seconds|PX milliseconds|KEEPTTL] [NX|XX]
EX表示秒为单位
PX表示毫秒为单位
EX、PX不区分大小写
egset name cui ex 10
设置失效时间为10s
ttl [key]
查看剩余剩余时间 秒
pttl [key]
查看剩余时间 毫秒
设置值后设置有效时间
expire [key] 时间(秒)
pexpire [key] 时间(毫秒)