Redis后端的简单了解与使用(项目搭建前置)

文章目录

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] 时间(毫秒)
相关推荐
DBA_G8 小时前
GBase 8a MPP集群个人电脑安装环境浅析
数据库
小林ixn8 小时前
别再 MySQL + Milvus 双写了:PostgreSQL + pgvector 一张表搞定 AI 长期记忆
数据库·postgresql·agent
用户1549304485718 小时前
Redis 缓存与分布式锁:从 CAS 到 Lua
redis
深盾科技_Virbox8 小时前
换机或重装后软件许可怎么恢复:先核对哪四项
java·服务器·数据库
知行产研8 小时前
亚太工程机械市场:中国制造“换道超车“,价值重心从“卖铁“转向“卖系统“
数据库·制造
云贝贝贝8 小时前
白天稳如狗半夜就抖:OceanBase 合并转储把读写延迟顶了上去
数据库·sql·oceanbase
ss2738 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 24 PostgreSQL WAL日志与崩溃恢复原理
数据库·笔记·postgresql
JavaPub-rodert8 小时前
王仕宇分享:Oxigraph 是什么?用 Rust + RocksDB 搭一个轻量 RDF/SPARQL 知识图谱数据库
数据库·rust·知识图谱
ycydynq8 小时前
django利用不涉及数据库form自定义表单 表单元素验证
数据库·django·sqlite
木白CPP8 小时前
Persistence subsystem 笔记
数据库·笔记