Redis(基础指令和五大数据类型)

ops/2024/10/18 18:13:44/

文章目录

    • 1.基本介绍
        • 1.多种数据结构支持
        • 2.应用场景
    • 2.Redis安装(直接安装到云服务器)
        • 1.安装gcc
          • 1.yum安装gcc
          • 2.查看gcc版本
        • 2.将redis6.2.6上传到/opt目录下
        • 3.进入/opt目录下然后解压
        • 4.进入 redis-6.2.6目录
        • 5.编译并安装
        • 6.进入 /usr/local/bin 查看是否有redis的命令
    • 3.启动并使用redis
        • 1.进入 /opt/redis-6.2.6/
        • 2.将里面的redis.conf复制一份到/etc下
        • 3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
        • 3.启动redis,指定刚才的配置文件
        • 4.检查redis是否启动
          • 1.通过查看进程的方式,可以看到在6379端口监听
          • 2.通过查看端口监听状态的方式
        • 5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
          • 1.腾讯云开启6379端口
          • 2.宝塔开启6379端口
        • 6.客户端访问和关闭redis
          • 1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下
          • 2.关闭redis(还是在bin目录下)
            • 1.关闭6379端口的redis
            • 2.指定端口关闭redis
            • 3.在redis命令行的关闭方式
            • 4.退出命令行:quit
    • 4.redis指令
        • 1.指令文档
        • 2.基础操作
          • 1.set和get基本操作(默认就是字符串,除非有空格否则可以不加双引号)
          • 2.如果key已经存在,则会覆盖原来的值(跟HashMap很像)
          • 3.输入clear清屏
          • 4.quit/exit 退出命令行,数据依然在
          • 5.help + 命令 获取帮助文档
        • 3.对key操作的指令
          • 1.keys:列出所有的key
          • 2.keys:列出以1结尾的key
          • 3.exists:判断某个key是否存在,返回1存在,返回0不存在
          • 4.type:判断key的类型
          • 5.del:删除指定的key,成功返回1
          • 6.unlink:异步删除key,不阻塞
          • 7.关于key的过期时间
            • 1.expire key 100:设置key时指定过期时间为100s
            • 2.ttl:查看key还有多少秒过期,-1永不过期,-2表示过期
        • 4.对DB的操作(redis默认有16个库0-15)
          • 1.select 1 切换到1号库
          • 2.dbsize 查看当前库key的数量
          • 3.flushdb 清空当前库
          • 4.flushall 清空所有库(谨慎)
    • 5.Redis五大数据类型
        • 1.官方文档
        • 2.数据类型
        • 3.string类型
          • 1.append 追加字符到string后面,返回总的字符串长度
            • 1.key存在的情况,直接追加
            • 2.key不存在的情况,就相当于set了
          • 2.strlen 获得值的长度
          • 3.setnx 只有在key不存在的情况才设置key,成功返回1
          • 4.incr 为key存储的数字值+1,如果key不存在则直接设置为1
          • 5.decr 为key存储的数字值-1,如果key不存在则直接设置为-1
          • 6.在incrby 和 decrby 的可以设置步长
          • 7.m 批量设置k-v,具有原子性,一个失败则全部失败
            • 1.mset 批量set
            • 2.mget 批量get
            • 3.msetnx 批量setnx,有一个失败则全部失败
          • 8.getrange 获取key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个
          • 9.setrange 设置key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个
          • 10.setex 设置值的时候同时设置过期时间
          • 11.getset 设置值的同时得到原来的值
        • 6.list类型
          • 1.列表类型底层是双向链表
          • 2.lpush,rpush 向左边或右边插入一个或多个值
            • 1.注意:如果是左边插入的是a,b,c则实际上是c,b,a
          • 3.lrange 查看list的元素,0代表第一个,-1代表最后一个,-2代表倒数第二个,0 -1 则代表所有
          • 4.lpop,rpop从左边或者右边吐出一个值
          • 5.rpoplpush key1列表右边吐出一个值,插入到key2列表的左边
          • 6.lindex 按照下标返回数据
          • 7.llen 获得列表长度
          • 8.linsert 向一个值的前面或者后面插入一个元素
          • 9.lrem 从左边删除n个value
          • 10.list最佳实践
            • 1.系统通知,按照时间顺序展示
            • 2.在这里如果使用lpush,则取出时,会先取出最近加入的消息
        • 7.set
          • 1.基本介绍
          • 2.sadd 向集合中加入一个或多个元素
          • 3.smembers 取出该集合的所有元素(与加入顺序不一定相同)
          • 4.sismember 判断集合中是否有某个元素
          • 5.scard 判断当前集合中有几个元素
          • 6.srem 删除集合中的某个元素
          • 7.spop 随机吐出集合中的一个元素
          • 8.srandmember 随机取出n个值
          • 9.smove 把集合中的一个元素移动到另一个集合中
          • 10.sinter 返回两个集合的交集
          • 11.ssuion 返回两个集合的并集
          • 12.sdiff 返回两个集合的差集
        • 8.hash
          • 1.基本介绍
          • 2.hset 添加一个或多个键值对,如果key已经存在,就在这个基础上添加
          • 3.hget 获取key对应的field的value,如果没有该field则返回null
          • 4.hmget 批量获取key对应的field的value
          • 5.hexists 查看field是否存在
          • 6.hkeys 查看该key对应的所有field
          • 7.hvals 查看该key对应的所有value
          • 8.hincrby 对value进行加减操作
          • 9.hsetnx 将hash表中key的域field的值设置为value,当且仅当field不存在
        • 9.zset(有序集合)
          • 1.基本介绍
          • 2.zadd 添加一个或多个zset
          • 3.zrange 按照下标来取出元素(默认按照score从小到大排序)
          • 4.zrevrange 按照下标取出元素(逆序)
          • 5.在后面添加 withscores则与score一起返回
          • 6.zscore 查看某个value的排序码
          • 7.zrangebyscore 根据分数从小到大取出指定范围的元素,下标从1开始
          • 8.zrevrangebyscore 根据分数从大到小取出指定范围的元素,先写max再写min
          • 9.zincrby 为key的成员加上增量
          • 10.zrem 删除某个元素
          • 11.zcount 根据分数统计数量
          • 12.zrank 返回value的索引

1.基本介绍

1.多种数据结构支持

image-20240428154346590

2.应用场景

image-20240428154413968

2.Redis安装(直接安装到云服务器)

1.安装gcc
1.yum安装gcc
yum install gcc
2.查看gcc版本
gcc --version

image-20240428155648393

redis626opt_30">2.将redis6.2.6上传到/opt目录下
3.进入/opt目录下然后解压
tar -zxvf redis-6.2.6.tar.gz

image-20240428160424891

redis626_40">4.进入 redis-6.2.6目录
cd redis-6.2.6

image-20240428160526289

5.编译并安装
make && make install

image-20240428160715624

redis_56">6.进入 /usr/local/bin 查看是否有redis的命令
cd /usr/local/bin

image-20240428160808050

redis_64">3.启动并使用redis

redis626_66">1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/

image-20240428161146017

redisconfetc_74">2.将里面的redis.conf复制一份到/etc下
cp redis.conf /etc/redis.conf
redisconfdaemonize_nodaemonize_yes_80">3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
vim /etc/redis.conf

image-20240428161520788

redis_88">3.启动redis,指定刚才的配置文件
/usr/local/bin/redis-server /etc/redis.conf

image-20240428161700311

redis_96">4.检查redis是否启动
1.通过查看进程的方式,可以看到在6379端口监听
ps -aux | grep redis

image-20240428161828989

2.通过查看端口监听状态的方式
netstat -anp | more

image-20240428161956925

5.既然已经在6379端口监听了,就将这个端口开放,方便以后访问
1.腾讯云开启6379端口

image-20240428162229640

2.宝塔开启6379端口
firewall-cmd --permanent --add-port=6379/tcp && firewall-cmd --reload && firewall-cmd --query-port=6379/tcp

image-20240428162620315

redis_128">6.客户端访问和关闭redis
rediscli_6379_130">1.执行/usr/local/bin的redis-cli 指令会默认连接6379端口,也可以指定端口,如下
redis-cli -p 6379

image-20240428162941539

redisbin_138">2.关闭redis(还是在bin目录下)
redis_140">1.关闭6379端口的redis
redis-cli shutdown
redis_146">2.指定端口关闭redis
redis-cli -p 6379 shutdown
redis_152">3.在redis命令行的关闭方式
shutdown
4.退出命令行:quit

image-20240428163339461

redis_162">4.redis指令

1.指令文档

https://www.redis.net.cn/tutorial/3506.html

2.基础操作
1.set和get基本操作(默认就是字符串,除非有空格否则可以不加双引号)

image-20240428164250774

2.如果key已经存在,则会覆盖原来的值(跟HashMap很像)

image-20240428164629652

3.输入clear清屏
4.quit/exit 退出命令行,数据依然在
5.help + 命令 获取帮助文档

image-20240428164818419

3.对key操作的指令
1.keys:列出所有的key
keys *
2.keys:列出以1结尾的key
keys *1

image-20240428165044144

3.exists:判断某个key是否存在,返回1存在,返回0不存在

image-20240428165531907

4.type:判断key的类型

image-20240428165609934

5.del:删除指定的key,成功返回1

image-20240428165717582

6.unlink:异步删除key,不阻塞

image-20240428170234724

7.关于key的过期时间
1.expire key 100:设置key时指定过期时间为100s

image-20240428170936492

2.ttl:查看key还有多少秒过期,-1永不过期,-2表示过期

image-20240428171108534

redis16015_228">4.对DB的操作(redis默认有16个库0-15)
1.select 1 切换到1号库

image-20240428171431723

2.dbsize 查看当前库key的数量

image-20240428171527597

3.flushdb 清空当前库

image-20240428171619903

4.flushall 清空所有库(谨慎)

5.Redis五大数据类型

1.官方文档

https://www.redis.net.cn/tutorial/3501.html

2.数据类型

image-20240428172039784

3.string类型
1.append 追加字符到string后面,返回总的字符串长度
1.key存在的情况,直接追加

image-20240428172731884

2.key不存在的情况,就相当于set了

image-20240428172919001

2.strlen 获得值的长度

image-20240428173016395

3.setnx 只有在key不存在的情况才设置key,成功返回1

image-20240428173125410

4.incr 为key存储的数字值+1,如果key不存在则直接设置为1

image-20240428173705393

5.decr 为key存储的数字值-1,如果key不存在则直接设置为-1

image-20240428173818067

6.在incrby 和 decrby 的可以设置步长

image-20240428174132747

7.m 批量设置k-v,具有原子性,一个失败则全部失败
1.mset 批量set

image-20240428174357811

2.mget 批量get

image-20240428174426295

3.msetnx 批量setnx,有一个失败则全部失败

image-20240428174715318

8.getrange 获取key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个

image-20240428175314785

9.setrange 设置key指定部分的值,是闭区间,-1表示最后一个值,-2是倒数第二个

image-20240428175813351

10.setex 设置值的时候同时设置过期时间

image-20240428192746792

11.getset 设置值的同时得到原来的值

image-20240428193137535

6.list类型
1.列表类型底层是双向链表

image-20240428193609477

2.lpush,rpush 向左边或右边插入一个或多个值
1.注意:如果是左边插入的是a,b,c则实际上是c,b,a

image-20240429092331821

3.lrange 查看list的元素,0代表第一个,-1代表最后一个,-2代表倒数第二个,0 -1 则代表所有

image-20240429092536345

4.lpop,rpop从左边或者右边吐出一个值

image-20240429092829028

5.rpoplpush key1列表右边吐出一个值,插入到key2列表的左边

image-20240429093938230

6.lindex 按照下标返回数据

image-20240429094059991

7.llen 获得列表长度

image-20240429094203021

8.linsert 向一个值的前面或者后面插入一个元素

image-20240429094641682

9.lrem 从左边删除n个value

image-20240429095004563

10.list最佳实践
1.系统通知,按照时间顺序展示

image-20240429095324457

2.在这里如果使用lpush,则取出时,会先取出最近加入的消息

image-20240429095403727

7.set
1.基本介绍

set可以自动排重,并且是无序的,跟HashSet差不多

2.sadd 向集合中加入一个或多个元素

image-20240429100248735

3.smembers 取出该集合的所有元素(与加入顺序不一定相同)

image-20240429100339106

4.sismember 判断集合中是否有某个元素

image-20240429100600514

5.scard 判断当前集合中有几个元素

image-20240429100656645

6.srem 删除集合中的某个元素

image-20240429101015488

7.spop 随机吐出集合中的一个元素

image-20240429101116975

8.srandmember 随机取出n个值

image-20240429101223351

9.smove 把集合中的一个元素移动到另一个集合中

image-20240429101529175

10.sinter 返回两个集合的交集

image-20240429101845533

11.ssuion 返回两个集合的并集

image-20240429101922836

12.sdiff 返回两个集合的差集

image-20240429101951441

8.hash
1.基本介绍

image-20240429102117242

image-20240429102215553

2.hset 添加一个或多个键值对,如果key已经存在,就在这个基础上添加

image-20240429103207011

image-20240429103527866

3.hget 获取key对应的field的value,如果没有该field则返回null

image-20240429103303474

4.hmget 批量获取key对应的field的value

image-20240429103404402

5.hexists 查看field是否存在

image-20240429103833193

6.hkeys 查看该key对应的所有field

image-20240429103855363

7.hvals 查看该key对应的所有value

image-20240429104050371

8.hincrby 对value进行加减操作

image-20240429104633593

image-20240429104832755

9.hsetnx 将hash表中key的域field的值设置为value,当且仅当field不存在

image-20240429105052304

9.zset(有序集合)
1.基本介绍

image-20240429105457378

2.zadd 添加一个或多个zset

image-20240429110138349

3.zrange 按照下标来取出元素(默认按照score从小到大排序)

image-20240429110342417

4.zrevrange 按照下标取出元素(逆序)

image-20240429110602925

5.在后面添加 withscores则与score一起返回

image-20240429110847059

6.zscore 查看某个value的排序码

image-20240429111012035

7.zrangebyscore 根据分数从小到大取出指定范围的元素,下标从1开始

image-20240429111340058

8.zrevrangebyscore 根据分数从大到小取出指定范围的元素,先写max再写min

image-20240429111720954

9.zincrby 为key的成员加上增量

image-20240429112306187

10.zrem 删除某个元素

image-20240429112533235

11.zcount 根据分数统计数量

image-20240429112647815

12.zrank 返回value的索引

image-20240429112739729


http://www.ppmy.cn/ops/34315.html

相关文章

25计算机考研院校数据分析 | 哈尔滨工业大学

哈尔滨工业大学(Harbin Institute of Technology),简称哈工大, 校本部位于黑龙江省哈尔滨市,是由工业和信息化部直属的全国重点大学,位列国家“双一流”、“985工程”、“211工程”,九校联盟 、…

React 之 主要的内置 Hook(十)

React 重要的主要内置 Hook 包括以下几个: 1. useState 用于在函数组件中添加状态。它返回一个状态变量和一个更新该状态的函数。这使得函数组件能够像类组件一样具有状态。 useState使用代码栗子: import React, { useState } from react; function …

深度学习之基于Pytorch姿态估计的仰卧起坐计数系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 仰卧起坐作为一种常见的健身动作,被广泛用于腹部肌肉的锻炼。然而,对于仰卧起…

Java常用命令总结 持续更新中!!!

蓝桥杯JAVA组 推荐输入输出示例 // 基础输入 import java.util.*;public class Main{public static void main(String[] args){} }// 非静态方法调用 new Main.Solution();//static函数里面调用非static函数 类.函数// 更快的输入方式 BufferedReader // 更快的输出方式 Print…

SpaceX 遭攻击,泄露近150GB数据以及多份图纸

近期,埃隆马斯克 (Elon Musk) 创立的航空航天制造商和太空运输服务公司 SpaceX 称遭遇了网络安全事件,该事件涉及黑客组织Hunters International的数据泄露,据报道该组织发布了 SpaceX 数据泄露的样本。 此次SpaceX 的数据泄露涉及 SpaceX 相…

华为OD机试【求满足条件的最长子串的长度】(java)(100分)

1、题目描述 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: 只包含1个字母(a-z, A-Z),其余必须是数字&#xf…

Day15-JavaWeb开发-Maven高级-分模块设计与开发继承与聚合私服

1. Maven高级-分模块设计与开发 2. Maven高级-继承与聚合 2.1 继承关系实现 2.2 版本锁定 2.3 聚合实现 3. Maven高级-私服 3.1 私服-介绍 3.2 私服-资源上传与下载 4. Web开发-完结

计算机系列之数据库技术

13、数据库技术(重点、考点) 1、三级模式-两级映像(考点) 内模式:管理如何存储物理的数据,对应具体物理存储文件。 **模式:**又称为概念模式,就是我们通常使用的基本表&#xff0c…