Redis学习 - 基础篇

Redis学习 - 基础篇

一. 简介

Redis 是一个高性能的key-value数据库,常用的数据类型如下:string,list,set,zset,hash

二. 安装

Widows和Linux下如何安装Redis-CSDN博客

三. 常用命令

配置及数据库操作

命令说明
config get [config_name]获取指定的配置信息( * 查看全部)
info [info_name]查看redis服务器信息
select [db_number]切换到指定数据库(0 - 15)

key的操作

命令说明
set [key] [value]
del [key]
rename [key] [newKeyName]改名
keys [pattern]
exists [key]
expire [key] [seconds]设置key的过期时间
persist [key]取消key的过期时间
ttl [key]查看key的过期时间(-1表示永久,-2表示不存在)
move [key] [db]移动 key 去别的库
type [key]查看key的类型

四. 常用数据类型

1. String

命令说明
set [key] [value]
setnx [key] [value]不存在时才创建
setex [key] [seconds] [value]设指定过期时间的字符串键值对
mset [key1] [value1] …批量增加/修改
del [key]
mset [key1] [value1] …批量增加/修改
append [key] [append_value]追加内容
incr [key]将value增加1
decr [key]将value减少1
get [key]
msget [key1] …批量获取
getrange [key] [start] [end]获取截断字符串
strlen [key]返回对应 value 的长度

2. Hash

Hash用来存对象,命令类似于String : h + XXX

命令说明
hset [key] [field] [value]
hsetnx [key] [field] [value]不存在时才插入
hmset [key] [field1] [value1] …批量插入
hdel [key] [field] …批量删除field
hget [key] [field]获取指定的field的value值
hgetall [key]获取所有field的value值
hvals [key]获取所有的value值
hlen [key]获取field的数量
hkeys [key]获取所有field值

3. List

双头队列

命令说明
lpush [key] [value1] …队头插入
rpush [key] [value1] …队尾插入
lpop [key]队头出
rpop [key]队尾出
lrem [key] [count] [value]从队头到队尾删除指定数量的值为value的元素(0表示全部删除,否则删除的数量为绝对值的count)
lset [key] [index] [newValue]将指定index的值改为newValue
lindex [key] [index]获取指定索引的元素(队头为0)
lrange [key] [start] [end]从队头往队尾输出
llen [key]列表大小

4. Set

类似于Java的HashSet<String>

命令说明
sadd [key] [value1] …单个/批量插入
srem [key] [value1]…单个/批量删除
sismember [key] [value]是否包含指定value
smembers [key]遍历输出所有元素
scard [key]输出长度
集合操作
sinter [key1] [key2] …取交集
sinterstore [key] [key1] [key2] …取后面集合的交集存到key所在set
sdiff [key1] [key2]…取差集
sunion [key1] [key2]…取并集
sunionstore [key] [key1] [key2] …取后面集合的并集存到key所在set

5. Sorted Set

HashMap<String, Integer>

命令说明
zadd [key] [score1] [member1] …单个/批量插入
zrem [key] [member1] …单个/批量删除
zremrangebyscore [key] [min] [max]删除指定分数区间的元素
zremrangebyrank [key] [start] [end]删除指定索引范围的元素(按升序排名的)
zincrby [key] [increment] [member]给member加上increment分
zrange [key] [start] [end] [withscores]按分数升序输出指定索引区间的元素 (加了withscores分数也输出)
zrevrange [key] [start] [end] [withscores]按分数降序输出指定索引区间的元素(加了withscores分数也输出)
zrangebyscore [key] [min] [max] [withscores]按照分数区间升序输出元素
zcount [key] [min] [max]获取指定分数区间的元素数量
zrank [key] [member]获取指定member的索引(按照分数升序的排名 - 1)
zrevrank [key] [member]获取指定member的索引(按照分数降序的排名 - 1)
zcard [key]获取长度

五. 消息的订阅发布

开两个客户端(两个cmd窗口,执行redis-cli.exe),一个作为订阅方,一个作为发布方

订阅方

SUBSCRIBE redisChat

发布方

publish redisChat "hello"

下图为执行结果,左边为订阅方,右边为发布方:
在这里插入图片描述

命令说明
pubscribe [pattern1] …订阅单个/多个频道
UNSUBSCRIBE [pattern1]…退订单个/多个频道
publish [pattern] [message]将message发布到pattern频道
pubsub channels查看订阅的频道

六. 事务

和数据库事务差不多

命令说明
multi标记事务开始
exec执行事务中的所有命令
discard取消事务
watch [key]…下次事务执行前,如果这些key的内容被修改了,则打断事务
unwatch取消所有的watch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43614.shtml

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

相关文章

《信息技术与信息化 》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问&#xff1a;《信息技术与信息化 》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《信息技术与信息化 》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a;山东省科学技术协会 主办单…

国内磁性器件核心企业『云路新能源』携手企企通正式启动SRM项目,供应链竞争力再上新台阶

近日&#xff0c;珠海黎明云路新能源科技有限公司&#xff08;以下简称“云路新能源”&#xff09;携手企企通启动SRM数字化采购供应链管理项目&#xff0c;双方相关负责人与项目组成员出席本次启动会。 本次采购数字化项目建设&#xff0c;企企通将助力云路新能源实现采购全场…

智能无人数字直播间 打造24小时的无人直播间源码系统 带网站的安装代码包以及搭建教程

系统概述 智能无人数字直播间系统是一种基于人工智能技术的软件工具&#xff0c;它结合了高精度扫描建模、自动化控制、多模态生成等多项先进技术&#xff0c;能够实现对真实人物的高度仿真&#xff0c;并自主执行各类直播任务。该系统不仅支持24小时不间断直播&#xff0c;还…

微信小程序引入自定义子组件报错,在 C:/Users/***/WeChatProjects/miniprogram-1/components/路径下***

使用原生小程序开发时候&#xff0c;会报下面的错误&#xff0c; [ pages/button/button.json 文件内容错误] pages/button/button.json: [“usingComponents”][“second-component”]: “…/…/components/second-child/index”&#xff0c;在 C:/Users/***/WeChatProjects/m…

Windows 中修改 MySQL 密码

没想到这样一个简单的需求&#xff0c;愣是试了半天没试到有用的命令&#xff0c;最后终于找到一个有用的&#xff0c;在此做个记录&#xff1a; set password for rootlocalhost 你的新密码;

【C++与python】| splice语法对比列表切片

splice用法详解 C 中的 splice示例 1&#xff1a;将整个列表 lst2 插入到 lst1 中某个位置示例 2&#xff1a;将 lst2 的一个元素插入到 lst1 中某个位置 Python中的列表切片&#xff08;Slicing&#xff09;示例 1&#xff1a;获取列表的子列表示例 2&#xff1a;修改列表的子…

禅道二次开发——禅道zentaoPHP框架扩展机制——对视图层(view)扩展

视图文件的扩展分为两种方式&#xff0c;一种是完全覆盖&#xff0c;第二种是通过钩子机制来扩展。 一、完全覆盖 视图文件的覆盖可以通过完全覆盖的方式来重新定义。比如我对bug模块的create页面进行扩展。原来的视图文件是存放在module/bug/view/create.html.php。如果需要…

Android约束布局的概念与属性(2)

目录 3&#xff0e;链式约束4&#xff0e;辅助线 3&#xff0e;链式约束 如果两个或以上控件通过下图的方式约束在一起&#xff0c;就可以认为是他们是一条链&#xff08;如图5为横向的链&#xff0c;纵向同理&#xff09;。 图5 链示意图 如图5所示&#xff0c;在预览图中选…

解读网络安全公司F5:助企业高效简化多云和应用部署

伴随企业加速数字化转型工作、扩展到新的基础设施环境并采用微服务架构&#xff0c;企业正拥抱混合和多云基础设施所带来的灵活性。Ernst & Young调查数据显示&#xff0c;84%的企业正处于向现有网络安全解决方案套件添加多种新技术的早期阶段。企业同样意识到&#xff0c;…

nftables(3)表达式(1)数据类型

简介 前面文章主要介绍的是nftables的基本原理和基础的配置&#xff0c;如nftables基本的表、链、规则的创建和管理。本篇文章主要介绍的是表达式EXPRESSIONS。 在网络安全和数据处理中&#xff0c;表达式&#xff08;Expressions&#xff09;扮演着非常重要的角色。它们用于…

二. Linux内核

一. Linux内核源码目录分析 arch 包含与体系结构相关的代码&#xff0c;用于支持不同硬件体系结构的实现。这个目录下会根据不同的架构&#xff08;如x86、arm、mips等&#xff09;进一步细分。 block 用于处理块设备的子系统&#xff0c;包含与块设备驱动和I/O调度相关的代码。…

力扣--滑动窗口最大值

给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输…

Vue核心 — Vue2响应式原理和核心源码解析(核心中的核心)

一、前置知识 1、Vue 核心概念 Vue 是什么? Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。 Vue 核心特点是什么? 响应式数据绑定:…

docker安装tomcat容器

docker安装tomcat容器 1、拉取镜像 docker pull tomcat:8.5.46-jdk8-openjdk2、运行 docker run -d --name tomcat tomcat:8.5.46-jdk8-openjdk ​ docker cp tomcat:/usr/local/tomcat/conf /data/tomcat/ ​ docker rm -f tomcat ​ docker run -d --name tomcat -p 8…

绝区捌--将GPT幻觉的发生率从20%以上降低到2%以下

总结&#xff1a;我们没有使用微调&#xff0c;而是结合使用提示链和预处理/后处理来将幻觉发生率降低一个数量级&#xff0c;但这确实需要对 OpenAI 进行 3-4 倍的调用。还有很大的改进空间&#xff01; 使用 GPT 等大型语言模型面临的最大挑战之一是它们倾向于捏造信息。 这…

from functools import partial有什么用

functools.partial 是 Python 的 functools 模块中的一个非常有用的函数&#xff0c;它用于部分应用一个函数。这意味着你可以创建一个新的函数&#xff0c;这个新函数是原函数的一个子集&#xff0c;即预先填充了原函数的一些参数&#xff0c;并返回这个新函数。这样&#xff…

使用Python绘制QQ图并分析数据

使用Python绘制QQ图并分析数据 在这篇博客中&#xff0c;我们将探讨如何使用Python中的pandas库和matplotlib库来绘制QQ图&#xff08;Quantile-Quantile Plot&#xff09;&#xff0c;并分析数据文件中的内容。QQ图是一种常用的统计图表&#xff0c;用于检查一组数据是否服从…

VUE+Spring Flux实现SSE长连接

VUE代码 // 初始化EventSourceinitEventSource(url) {const token getAccessToken();const eventSource new EventSourcePolyfill(url, {headers: {Authorization: Bearer ${token},tenant-id: getTenantId(),}});eventSource.onerror (e) > {console.log("SSE连接错…

C# 下sendmessage和postmessage的区别详解与示例

文章目录 1、SendMessage2、PostMessage3、两者的区别&#xff1a; 总结 在C#中&#xff0c;SendMessage和PostMessage是两个用于Windows编程的API&#xff0c;它们用于向窗口发送消息。这两个方法都位于System.Windows.Forms命名空间中&#xff0c;通常用于自动化Windows应用程…

GitHub:现代软件开发的协作平台

引言 在现代软件开发中&#xff0c;协作工具的选择至关重要。GitHub作为全球最大的代码托管平台&#xff0c;已经成为开发者们不可或缺的工具。自2008年成立以来&#xff0c;GitHub不仅改变了代码托管和协作的方式&#xff0c;还在开源软件的发展中扮演了重要角色。本文将详细…