Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)

初识Redis

Redis为键值型数据库,数据以键值形式存储。没有表,没有约束。

 认识NoSQL

 mysql就是典型的关系型数据库(SQL)。

目的都是数据的增删改查,但数据存储方式不一样。

 

关系型和非关系型在结构上有差异

关系型的结构一般定好后就很少修改,非关系型的就更加自由

 关系型数据库的关系体现如下,不同表可以通过外键进行联系

 非关系型数据库因为没有表,所以像下面记录一个用户下的订单需要通过json嵌套的形式

 查询方面差异

关系型数据库都可以使用同一套SQL语句进行查询,NoSQl的查询语法不统一,不同的NoSQl数据库有不同的语法

 事物上的差异

关系型数据库的事物有ACID特性: 原子性,一致性,隔离性,持久性

NoSQl数据库要么无事务,要么就是只能做基本的一致性,ACID无法全部满足,只有BASE性:系统能够基本运行,一直提供服务 

速度差异:磁盘读写速度远慢于CPU速度,因此存在内存中的NoSQl速度很快。

认识Redis

 

 安装Redis

因为redis官方没有提供windows版本(但听说github上有),只有liunx,所以这里有两种选择,一是在本地安装虚拟机跑redis,而是在云服务器跑redis

这里我选择在云服务器装redis, 官方也有提供redis的docker镜像

这里首先在云服务器上使用如下命令拉取redis镜像

docker pull redis

拉取速度慢的话可以换源,可以看下面这个博主的文章,建议换阿里的源,快的不是一点半点

docker 换镜像源以解决拉取镜像速度慢的问题_dock拉取镜像很慢_farkuai的博客-CSDN博客

然后用镜像创建一个容器

docker run -d -p 6379:6379 --name myredis redis

 用docker ps -a 看容器的id

docker ps -a

然后用以下命令打开redis服务

docker exec -it 容器的id redis-cli

然后就可以直接使用一个软件进行连接了,不需要管配置文件那些什么的,更不需要文件夹映射什么的

 这里拉取容器下来的redis默认是没有密码的,所以可以直接用服务器+端口后进行连接

 为了安全起见,还是要先修改密码。

//使用如下命令查询信息
config get requirepass

//使用如下命令修改密码
config set requirepass password

//使用如下命令确认密码,否则报错
auth password

//再次查看密码
config get requirepass

设置完密码之后的每次登陆都要带上密码,否则能进去但不能使用命令

 

 docker exec -it b66f2d4fb5b3 redis-cli -a 234799

连接成功时界面是这样的

 这里默认有16个仓库,可以通过以下语句选择哪一个仓库

# 选择 0号库
select 0

 Redis命令——数据结构

 

Redis命令——通用命令

#查看相关命令的信息
help commad


#查询所有的key
keys * 
#查询所有以n开头的key
keys n*
#查询所有带有n的key
keys *n*

//类似sql的模糊查询


#删除指定的key
del key
#删除多个key
del  k1 k2 k3 k4    #实际删除多少个就会返回多少个

//只能指定key后删除


#判断key是否存在
exists k1 k2       #返回值是存在的key的数量


#给一个key设置有效期,到期就会删除,因为redis在内存存储,不删的话会爆内存
expire key  20   #20s有效期


#查看一个key的有效期
ttl key          #返回剩余秒数
返回-1则是永久有效

Redis命令——String类型常见命令

甚至可以把图片变成字节流存在redis里面

 

 常见命令

#设置三个键值对 k1:v1  ....
mset k1 v1 k2 v2 k3 v3

#获取多个key的值
mget k1 k2 k3

#返回值是自增后的结果
incr  age 

#让age每次自增-2
incrby age -2

#浮点数自增0.5
incrbyfloat age 0.5

#如果不存在才增加,可以有效防止覆盖
setnx age 2
set age 2 nx    #效果相同

#添加一个key=5并设置有效期为10
setex age 10 5
set age 5 ex 10
//可以覆盖已有的key,相当于set和expire组合

 

Redis命令——key的层级格式

 ​​​​​​​

 使用如下的四条语句设置4条数据

set  itheima:user:1 '{"id":1, "name":"Jack", "age": 21}'

set  itheima:user:2 '{"id":2, "name":"Rose", "age": 18}'

set  itheima:user:3 '{"id":1, "name":"小米11", "price": 4999}'

set  itheima:user:4 '{"id":2, "name":"荣耀6", "price": 2999}'

 然后在图形界面客户端可以看见有如下层级

Redis命令——Hash类型相关命令

类比就是map<String,map>,套娃

 

 常见命令

hmset已经弃用,使用hset可以达到hmset效果 

hdel :删除一个key下面指定的field和values

Redis命令——List类型相关命令

 常见命令

 

 Redis命令——Set类型相关命令

常用命令

  Redis命令——SortedSet类型相关命令

 

常用命令

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值