当前位置:   article > 正文

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

docker安装的redis如何连接

初识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默认是没有密码的,所以可以直接用服务器+端口后进行连接

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

  1. //使用如下命令查询信息
  2. config get requirepass
  3. //使用如下命令修改密码
  4. config set requirepass password
  5. //使用如下命令确认密码,否则报错
  6. auth password
  7. //再次查看密码
  8. config get requirepass

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

 

 docker exec -it b66f2d4fb5b3 redis-cli -a 234799

连接成功时界面是这样的

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

  1. # 选择 0号库
  2. select 0

 Redis命令——数据结构

 

Redis命令——通用命令

  1. #查看相关命令的信息
  2. help commad
  3. #查询所有的key
  4. keys *
  5. #查询所有以n开头的key
  6. keys n*
  7. #查询所有带有n的key
  8. keys *n*
  9. //类似sql的模糊查询
  10. #删除指定的key
  11. del key
  12. #删除多个key
  13. del k1 k2 k3 k4 #实际删除多少个就会返回多少个
  14. //只能指定key后删除
  15. #判断key是否存在
  16. exists k1 k2 #返回值是存在的key的数量
  17. #给一个key设置有效期,到期就会删除,因为redis在内存存储,不删的话会爆内存
  18. expire key 20 #20s有效期
  19. #查看一个key的有效期
  20. ttl key #返回剩余秒数
  21. 返回-1则是永久有效

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

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

 

 常见命令

  1. #设置三个键值对 k1:v1 ....
  2. mset k1 v1 k2 v2 k3 v3
  3. #获取多个key的值
  4. mget k1 k2 k3
  5. #返回值是自增后的结果
  6. incr age
  7. #让age每次自增-2
  8. incrby age -2
  9. #浮点数自增0.5
  10. incrbyfloat age 0.5
  11. #如果不存在才增加,可以有效防止覆盖
  12. setnx age 2
  13. set age 2 nx #效果相同
  14. #添加一个key=5并设置有效期为10
  15. setex age 10 5
  16. set age 5 ex 10
  17. //可以覆盖已有的key,相当于set和expire组合

 

Redis命令——key的层级格式

 ​​​​​​​

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

  1. set itheima:user:1 '{"id":1, "name":"Jack", "age": 21}'
  2. set itheima:user:2 '{"id":2, "name":"Rose", "age": 18}'
  3. set itheima:user:3 '{"id":1, "name":"小米11", "price": 4999}'
  4. 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类型相关命令

 

常用命令

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/876942
推荐阅读
相关标签
  

闽ICP备14008679号