docker上redis的安装与基础使用

一、docker环境中安装redis

首先先查询

docker search redis

在这里插入图片描述
这里可以看到查到了很多版本

接着进行拉取,我们选择stars最多的那个,通常就是官方版本

docker pull redis

拉取成功
在这里插入图片描述
然后就可以在镜像里面查看了

docker image ls

在这里插入图片描述
然后我们就创建一个含redis的集装箱,使用run语句,这里就要用个简单的语句即可

docker run -it --name redis_6379 -p 6379:6379 -d redis

创建成功
在这里插入图片描述
然后我们进入redis

redis -cli

在这里插入图片描述
接着再输入ping。如果返回pong那么就说明redis可以成功运行了

ping

在这里插入图片描述
在这里插入图片描述
然后我们可以使用redis自带的压力测试,第一个测试是不带管子的,第二个测试带管子,可以看到效率提高了四十倍有余
在这里插入图片描述

在这里插入图片描述

这里是我一开始指令输入错了,但是没关系,ctrl+c退出即可继续输入
在这里插入图片描述
一切就绪后,进入redis即可开始使用
在这里插入图片描述

二、redis数据类型

在这里插入图片描述

字符串String

在这里插入图片描述

set命令

set key value

set+key名儿+key的值
在这里插入图片描述
这里可以看出给一个string类型的fruit设两次值,第二次的会自动覆盖第一次

get命令

在这里插入图片描述

mget命令

mget key1 key2 ...

在这里插入图片描述

strlen命令

strlen key

在这里插入图片描述
这个指令可以看字符串的长度

incr key指令

让数字增,注意这里的数字只能是Integer整型

在这里插入图片描述
然后就是新建数字时候可以不加双引号会自动识别
在这里插入图片描述

decr指令

同理,让Integer型的value值减一

setnx 指令

这个指令比较关键,生效原理可以这样理解,setnx的key若之前未定义,则会成功把value赋给key,若key已经有值了,就无法去修改key的值(在上文的set指令中我们已经知道redis中的添加指令也可作修改指令使用)
在这里插入图片描述

那么,基于此特性,我们就可以进行一些应用,试想如下场景:
倘若一个人在执行一个decr指令操作的过程中(但是操作还未完成),另一个人也进来执行此操作,那么就会出现数据冲突等问题,如何解决这个问题呢?一个常用的办法就是,第一个人在执行操作时加一个标记,其他人想要进行此操作时先查看是否有人正在执行,如果仍有人执行那么就等会儿再来操作,而setnx就可以帮助我们实现这个办法:

在这里插入图片描述
流程大概是有100本书:第一个人来买书,并且设定好set的锁子标记,然后买完后删掉此标记即可,别人就可以进来买了,这里有用到expire指令,这个相当于定时炸弹,顶了十秒钟,到点儿后会炸掉这个key和value,不过用在这里其实有点儿早,因为目前还不清楚用什么方法可以在wn_lock 这个key被清除的同时把执行操作的人强制踢出去。

列表list

在这里插入图片描述

lpush指令/rpush指令

通俗来讲lpush 是往整个列表左边添加,rpush是往整个列表右边添加
在这里插入图片描述
在这里插入图片描述

lpop key

在这里插入图片描述

在这里插入图片描述
通俗来说就是删掉列表最左边的元素并打印出来删掉的元素

rpop key

同理,不过删的是右边并显示

lrange key start end

在这里插入图片描述
1、右边越界了也没关系
2、左边从零开始,想要元素2就输入元素1
3、从左往右排

lrem 指令

在这里插入图片描述

lrem key count value

这个指令详细说说
count有三种情况 先说=0:表示将count后面跟的value值全删了(因为列表中的元素可以重复)
<0 比如说-2,那就是最多删两个(如果列表本身就一个2那就删一个,多余两个2就删掉2个),删除的顺序从右往左
大于0 比如说2,从左往右删
在这里插入图片描述

在这里插入图片描述

集合set

在这里插入图片描述

sadd命令

在这里插入图片描述
在这里插入图片描述

哪怕输入的重复了最终集合也不重复,而且还会自动排序

scard key

查询语句返回的是数量

smembres key

查询语句返回所有成员

sismember key value

查集合中是否含有某个成员
在这里插入图片描述

在这里插入图片描述
有1无0

spop key

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

随机删掉了成员,可以发现随机没有那么随机,左右不确定,但是像剥洋葱从外往里一点点删 开始的我是这个结论
但是多操作几个后就发现确实是随机删除
在这里插入图片描述
在这里插入图片描述
删多个的话就是随机删了
在这里插入图片描述

有序集合 sorted set

在这里插入图片描述
在这里插入图片描述
可以理解为和普通set的区别就是给value多了个分数score
在这里插入图片描述
分数在左value在右,然后查表时它也有包容性 zrangebyscore stus 0 100也能查出想要的结果

哈希表 hash

在这里插入图片描述
在这里插入图片描述
这个以后会常用


redis常用命令

在这里插入图片描述

一些拷贝方式(底层更快)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值