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

文章目录

    • 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

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

image-20240428160424891

4.进入 redis-6.2.6目录
cd redis-6.2.6

image-20240428160526289

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

image-20240428160715624

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

image-20240428160808050

3.启动并使用redis

1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/

image-20240428161146017

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

image-20240428161520788

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

image-20240428161700311

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

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

image-20240428162941539

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

image-20240428163339461

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

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.mzph.cn/pingmian/6796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧文旅开启沉浸式文化体验,科技让旅行更生动:借助智慧技术,打造沉浸式文化体验场景,让旅行者在旅行中深度感受文化的魅力

一、引言 随着科技的飞速发展,传统旅游行业正经历着前所未有的变革。智慧文旅,作为一种新兴的旅游模式,正以其独特的魅力,吸引着越来越多的旅行者。智慧文旅不仅改变了人们的旅行方式,更在深度上丰富了人们的文化体验…

PostgreSQL 的用户管理操作

在 PostgreSQL 中,可以通过 SQL 命令和 psql 命令行工具进行用户管理操作。以下是一些常见的 PostgreSQL 用户管理操作: 1. 查询用户: \du2. 创建用户: 可以使用 CREATE ROLE 命令创建新用户,语法如下: CREATE ROLE username WITH LOGIN PASSWORD password; 如: CRE…

ansible报错解决:Failed to import the required Python library (netaddr)

ansible报错解决:Failed to import the required Python library (netaddr) 问题情况 今天我在做实验的时候出现了一个问题,以下是我的playbook,这个playbook是验证变量ip_address是否是一个合法的IP地址,并打印相应的信息的一个…

Spring入门及注解开发

1 引言 自定义注解可以用来为代码添加元数据信息,简化配置,提高代码的可读性和可维护性。通过自定义注解,可以实现自定义的业务逻辑、约束条件、配置参数等功能。在Spring中,自定义注解常用于标记组件、配置依赖注入、AOP切面等。 自定义注解可以添加元数据信息,低代码框…

问题 A: 实验11_4_初识链表

题目描述 已知一个正整数序列,个数未知,但至少有一个元素,你的任务是建立一个单链表,并使用该链表存储这个正整数序列,然后统计这个序列中元素的最大值与最小值,计算序列全部元素之和。正整数的输入用-1作…

关于图形库

文章目录 1. 概念介绍2. 使用方法2.1 普通路由2.2 命名路由 3. 示例代码4. 内容总结 我们在上一章回中介绍了"使用get显示Dialog"相关的内容,本章回中将介绍使用get进行路由管理.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…

AEC Capital Limited:开启可持续金融新纪元

在当今社会,环保和可持续发展已成为全球关注的焦点。在这个背景下,AEC Capital Limited作为香港的一家金融服务公司,以其专业、高端的服务和创新的理念,成为可持续金融领域的引领者。我们致力于将环境保护与金融服务相结合&#x…

muduo库的使用

目录 1、概述 2、基于muduo网络库开发服务器程序步骤 3、代码演示 1、概述 muduo网络库给用户提供了两个主要的类 TcpServer:用于编写服务器程序的TcpClient:用于编写客户端程序的 moduo库采用epoll线程池 好处:能够把网络I/O( 用户的连接和断开 …

观测与预测差值自动变化系统噪声Q的自适应UKF(AUKF_Q)MATLAB编写

简述 基于三维模型的UKF,设计一段时间的输入状态误差较大,此时通过对比预测的状态值与观测值的残差,在相应的情况下自适应扩大系统方差Q,构成自适应无迹卡尔曼滤波(AUKF),与传统的UKF相比&…

mac监听 linux服务器可视化(Grafana+Promethus+Node_exporter)

Grafana和promethus(普罗米修斯)的安装和使用 监控系统的Prometheus类似于一个注册中心,我们可以只需要配置一个Prometheus,而在其他服务器,只需要安装node_exporter,它们的数据流转就是通过exporter采集数据信息,然后告诉prometheus它的位置…

华为二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备,用于在局域网(LAN)中转发数据帧。它工作在OSI模型的第二层,即数据链路层。二层交换机通过学习和维护MAC地址表,实现了数据的快速转发和广播域的隔离。 实…

汉译英早操练-(三十)

hello,汉语在表达成英语的时候你是否有困惑。不要着急,一起来看看需要我们注意一些什么,慢慢的就不恐惧用英语表达汉语这件事了。给大家奉献系列文章,供大家参考学习。 往期回顾在这里,请随便点击过去查看,…

SpringBoot:实战项目TLIAS智能学习辅助系统1.1

SpringBootWeb项目 TILAS智能学习辅助系统 需求 部门管理 查询部门列表 删除部门 新增部门 修改部门 员工管理 查询员工列表(分页) 删除员工 新增员工 修改员工 准备工作 导入依赖 web(2.7.6) mybatis mysql驱动 lombok 准备好包结构 Controller->Servi…

CGAL 网格简化

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 为了提高网格处理的效率,通常需要将过于冗长的3D数据集简化为更简洁而又真实的表示。尽管从几何压缩到逆向工程有许多应用,但简洁地捕捉表面的几何形状仍然是一项乏味的任务。CGAL中则为我们提供了一种通过变分几…

语言文学综合-隋唐五代文学

概说 (一)唐代社会、文化的发展和唐代文学的繁荣 (二)唐代文学的风貌及其在中国文学史上的地位 一、隋与初唐文学 (一)南北文学的合流与隋代诗歌 卢思道、薛道衡等是北齐、北周旧臣。薛道衡的《昔昔盐》…

Objective-C高级特性浅析与实践指南

OC的学习笔记(二) 文章目录 OC的学习笔记(二)property访问控制符点语法 自定义init方法内存管理retain 和 release class处理发生异常的方法NSSrting的常用方法类方法对象方法lengthcharacterAtIndexisEuqalStringcompare autorel…

基于LLama3、Langchain,Chroma 构建RAG

概要: 使用Llama3 Langchain和ChromaDB创建一个检索增强生成(RAG)系统。这将允许我们询问有关我们的文档(未包含在训练数据中)的问题,而无需对大型语言模型(LLM)进行微调。在使用RA…

Unity DOTS1.0(8) Aspect核心机制分析

Aspect 概念: ASPECT是一种用于描述Entity的特性或特征的概念。ASPECT通常用于在系统中筛选出具有特定组件集合的实体。 你可以把5~6个组件得引用保存到一个数据对象里面(Aspect),你通过Aspect就可以拿到这些组件得引用,从而访问这些组件数据; Unity 会…

2024.4.28力扣每日一题——负二进制转换

2024.4.28 题目来源我的题解方法一 进制转换方法二 模拟进位 题目来源 力扣每日一题;题序:1017 我的题解 方法一 进制转换 对于以-2为基数的系统,可以这样理解:在-2进制中,每一位的权重是-2的幂。这与传统的二进制表…

assert函数详解

assert函数详解 1.函数概述2.assert函数一般用法3.assert函数的一些使用案例3.1判断大小3.2strlen函数的模拟实现3.3其它 4.注意 1.函数概述 评价一个表达式,当表达式错误时,输出一个诊断信息并且终止程序 assert是一个宏,在使用之前要调用库…