当前位置: 首页 > news >正文

Redis基本操作介绍

1. 安装与启动
  • 安装:Redis支持多种操作系统,包括Linux、Windows等。从Redis官网下载相应的安装包,并按照系统要求进行安装。
  • 启动
    • Linux系统:在终端中,进入Redis的安装目录,运行redis-server命令启动Redis服务。如果需要后台启动或设置密码,可以修改配置文件(如redis.conf)。
    • Windows系统:双击redis-server.exe文件启动Redis服务。或者,在命令行中使用redis-server.exe命令,并指定配置文件路径(如果使用了非默认配置)。
2. 连接Redis
  • 使用redis-cli命令连接到Redis服务器。在命令行中输入redis-cli,然后回车。如果Redis服务器设置了密码,连接时可以使用-a参数指定密码,如redis-cli -a yourpassword
3. 基本数据类型操作
  • 字符串(string)
    • 设置键值对SET key value [EX seconds] [PX milliseconds] [NX|XX]
      • SET命令用于设置键值对。
      • EXPX选项用于设置键的过期时间(以秒或毫秒为单位)。
      • NX选项表示仅当键不存在时才设置。
      • XX选项表示仅当键存在时才设置。
    • 获取键值GET key
      • GET命令用于获取指定键的值。
    • 删除键值对DEL key
      • DEL命令用于删除一个或多个键及其对应的值。
    • 追加值到字符串末尾APPEND key value
      • APPEND命令将指定的值追加到已存在键的值的末尾。
    • 字符串递减指定值DECRBY key decrement
      • DECRBY命令将键的整数值按指定的数值递减。
    • 获取字符串子串GETRANGE key start end
      • GETRANGE命令返回键的值的子串,其中startend是子串的起始和结束位置(包含start,不包含end)。
    • 替换字符串子串SETRANGE key offset value
      • SETRANGE命令用指定的值替换键的值的子串,其中offset是替换的起始位置。
    • 设置键的值并设置过期时间SETEX key seconds value
      • SETEX命令设置键的值,并为键设置过期时间(以秒为单位)。
    • 只有在键不存在时设置键的值SETNX key value
      • SETNX命令在键不存在时设置键的值。
    • 字符串递增INCR key
      • INCR命令将键的整数值递增1。如果键不存在,它会先被初始化为0。
  • 列表(list)
    • 从列表左边插入一个或多个元素LPUSH key value [value ...]
      • 这个命令将一个或多个值插入到已存在的列表的左边。如果键不存在,则创建一个新的列表。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
    • 从列表右边插入一个或多个元素RPUSH key value [value ...]
      • LPUSH类似,但将值插入到列表的右边。
  • 集合(set)
    • 添加元素到集合:SADD key member [member ...]
    • 移除集合中的元素:SREM key member [member ...]
    • 获取集合中的所有元素:SMEMBERS key
  • 有序集合(sorted set)
    • 添加元素到有序集合,并指定分数:ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
    • 移除有序集合中的元素:ZREM key member [member ...]
    • 获取有序集合中的元素:ZRANGE key start stop [WITHSCORES](可以附加WITHSCORES参数来获取元素的分数)
  • 哈希(hash)
    • 在哈希表中设置字段的值:HSET key field value
    • 获取哈希表中字段的值:HGET key field
    • 移除哈希表中一个或多个字段:HDEL key field [field ...]
    • 获取哈希表中所有字段和值:HGETALL key
4. 其他常用操作
  • 查看所有键KEYS patternpattern是一个模式,可以使用通配符)
  • 删除一个或多个键DEL key [key ...]
  • 切换数据库SELECT indexindex是数据库的索引号,Redis默认有16个数据库,索引从0开始)
  • 清空当前数据库FLUSHDB
  • 清空所有数据库FLUSHALL
5. 安全性与配置
  • 设置密码:在Redis的配置文件(如redis.conf)中,找到requirepass配置项并设置密码,以增强Redis的安全性。
  • 配置持久化:Redis支持RDB(快照)和AOF(追加文件)两种持久化方式。可以根据需要配置持久化选项,以防止数据丢失。
6. 集群与分片
  • 主从复制:Redis支持主从复制模式,可以实现数据备份和读写分离。主节点负责写入数据,从节点负责读取数据。
  • 分片集群:当数据量非常大时,可以使用Redis的分片集群功能将数据分散到多个Redis节点上,以提高系统的整体性能和容错能力。
7. 性能调优与监控
  • 性能调优:通过调整Redis的配置参数(如内存限制、连接数限制等),可以优化Redis的性能。
  • 监控:Redis提供了多种监控工具(如Redis Monitor、Redis Insight等),可以实时监控Redis的运行状态和数据变化。

8.优缺点

优点

  1. 高性能
    • Redis是基于内存的数据库,读写速度非常快,特别适用于需要高速响应的场景。
    • 支持多种数据结构,如字符串、列表、集合、哈希表等,这些数据结构都有高效的读写操作。
    • 使用单线程模型,避免了多线程的上下文切换开销,且内部优化得当,使得Redis即使在单线程下也能达到很高的性能。
  2. 丰富的数据结构
    • Redis支持多种数据结构,可以满足各种复杂场景的需求。
    • 这些数据结构包括字符串、哈希表、列表、集合、有序集合等,使得Redis在存储和操作数据上非常灵活。
  3. 简单易用
    • Redis提供了丰富的命令和数据类型,使得开发者可以快速上手并实现各种功能。
    • 同时,Redis也支持多种编程语言,如C、C++、Java、Python等,使得Redis的应用场景更加广泛。
  4. 持久化支持
    • Redis支持将数据持久化存储到本地磁盘中,包括RDB(快照)和AOF(Append Only File)两种方式。
    • 这保证了Redis在重启或发生故障时不会丢失数据。
  5. 支持分布式
    • Redis可以通过主从复制的方式实现数据的高可用性和可扩展性。
    • 同时,Redis也支持集群模式,可以方便地实现数据的分布式存储和访问。
  6. 事务支持
    • Redis支持事务,可以一次执行多个命令,保证了操作的原子性。

缺点

  1. 数据量受限
    • 由于Redis是基于内存的存储系统,其数据量受到物理内存的限制。
    • 当数据量过大时,可能需要增加更多的内存或采用其他存储方案。
  2. 持久化性能损耗
    • 当开启持久化功能时,Redis的性能会受到一定影响。
    • 尤其是使用RDB持久化方式时,由于需要定期生成快照文件,可能会消耗较多的CPU和I/O资源。
  3. 单线程模型
    • 虽然Redis的单线程模型在高并发场景下表现良好,但在某些情况下可能会成为瓶颈。
    • 例如,当需要执行复杂的计算或网络操作时,单线程模型可能会导致Redis的性能下降。
  4. 数据安全性
    • Redis默认不提供用户验证机制,需要用户手动配置密码来保护数据安全。
    • 此外,由于Redis的数据存储在内存中,因此需要额外的安全措施来防止数据泄露或被恶意攻击。
  5. 不支持复杂查询
    • 与关系型数据库相比,Redis的查询功能相对简单。
    • 虽然Redis支持一些基本的查询操作,但对于复杂的查询需求,可能需要结合其他数据库或工具来实现。

相关文章:

Redis基本操作介绍

1. 安装与启动 安装:Redis支持多种操作系统,包括Linux、Windows等。从Redis官网下载相应的安装包,并按照系统要求进行安装。启动: Linux系统:在终端中,进入Redis的安装目录,运行redis-server命…...

Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录

问题描述 使用Unity3d内嵌网页的形式打开720云中的全景图这个功能,使用的是3D WebView for Windows and macOS插件,720云的全景图在浏览器上的操作是滑动鼠标滚轮推远/拉近全景图,鼠标左键拖拽网页可以旋转全景图内容。网页的打开过程是正常…...

把文件从一台linux机器上传到另一台linux机器上

文章目录 1,第一种情况1.1 先测试2台机器是否可以互相通信1.2 对整个文件夹里面的所有内容进行传输的命令1.3 检查结果 2,第二种情况2.1,单个文件传输的命令 1,第一种情况 我这里有2台linux机器, 机器A:19…...

WT32-ETH01作为TCP Server进行通讯

目录 模块简介WT32-ETH01作为TCP Server设置W5500作为TCP Client设置连接并进行通讯总结 模块简介 WT32-ETH01网关主要功能特点: 采用双核Xtensa⑧32-bit LX6 MCU.集成SPI flash 32Mbit\ SRAM 520KB 支持TCP Server. TCP Client, UDP Server. UDP Client工作模式 支持串口、wi…...

mvn install -DskipTests

mvn install -DskipTests mvn install -DskipTests 不用做测试的打包代码...

Lua搭建网站后台教程

本文讲解如何使用二进制发布包和FastWeb网站管理工具搭建站点 FastWeb网站管理工具 使用该工具可快速在Windows平台部署。支持官方或三方模块的自动安装、日志调试、版本更新等。 1、下载最新版本压缩包 2、解压到任意目录(建议英文) 3、运行 ①点击 [设置]->[安装] 部…...

Java | Leetcode Java题解之第137题只出现一次的数字II

题目: 题解: class Solution {public int singleNumber(int[] nums) {int a 0, b 0;for (int num : nums) {b ~a & (b ^ num);a ~b & (a ^ num);}return b;} }...

大数据技术Hbase列数据库——topic3

目录 启动Hadoop启动HbaseHbase常用Shell命令基本命令关于表的操作增删改查询 启动Hadoop 1.到Hadoop安装目录下输入命令 sbin/start-all.sh[rootlocalhost hadoop-2.7.1]# sbin/start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starti…...

Sklearn基础教程:机器学习界的瑞士军刀

Sklearn基础教程:机器学习界的瑞士军刀 引言 在机器学习的世界里,sklearn(Scikit-learn)就像是一把瑞士军刀,小巧、多功能,而且非常实用。无论你是数据科学家还是编程新手,sklearn都能成为你解…...

Python异步爬虫批量下载图片-协程

import aiofiles import aiohttp import asyncio import requests from lxml import etree from aiohttp import TCPConnectorclass Spider:def __init__(self, value):# 起始urlself.start_url value# 下载单个图片staticmethodasync def download_one(url):name url[0].spl…...

力扣 42. 接雨水

题目来源&#xff1a;https://leetcode.cn/problems/trapping-rain-water/description/ C题解1&#xff1a;双指针 按列算&#xff0c;一列一列的求雨水面积。使用双指针是记录当前列左右侧的最大元素。 class Solution { public:int trap(vector<int>& height) {in…...

Elastic Platform 8.14:ES|QL 正式发布、静态加密和向量搜索优化

作者&#xff1a;来自 Elastic Gilad Gal, Tyler Perkins, Alex Chalkias, Trevor Blackford, Ninoslav Miskovic, Fabio Busatto, Aris Papadopoulos Elastic Platform 8.14 提供了 Elasticsearch 查询语言 (ES|QL) 的正式发行版 (GA) — Elastic 中数据探索和操作的未来。它还…...

UE4获取动画序列资产的动画时长

谢谢”朝闻道“大佬的指点~...

win10怎么截图?电脑截图的3个方法分享

win10怎么截图&#xff1f;在Windows 10操作系统中&#xff0c;截图功能不仅强大而且极其便捷。无论用户需要快速捕捉整个屏幕的内容&#xff0c;还是精确截取屏幕上的特定区域&#xff0c;它都能迅速响应并满足需求。通过内置的截图工具和快捷键&#xff0c;我们可以轻松完成各…...

无线领夹麦克风哪个品牌性价比高?推荐领夹麦克风性价比最高品牌

当今的直播、短视频已经深深的融入到了我们的生活当中&#xff0c;很多小伙伴会通过拍摄短视频、Vlog来分享自己生活精彩的瞬间。不过录制视频时&#xff0c;如果单纯靠手机拾音&#xff0c;距离手机越远&#xff0c;声音越小越不清晰如果有噪音干扰&#xff0c;那更是“惨不忍…...

C语言----深入理解指针(5)

1.sizeof和strlen的对比 sizeof计算变量所占内存空间的大小的&#xff0c;单位是字节 sizeof只关注内存空间的大小&#xff0c;不在乎内存中方的什么数据 sizeof是操作符不是函数 sizeof会将\0算进去的 // sizeof计算变量所占内存空间的大小的&#xff0c;单位是字节int m…...

Ansible——cron模块

目录 参数总结 示例1&#xff1a;创建一个定时任务 示例2&#xff1a;删除一个定时任务 示例3&#xff1a;每周一早上 3 点清理临时文件 示例4&#xff1a;每小时运行一次日志轮转 示例5&#xff1a;为指定用户添加一个定时任务 Playbook (YAML 格式) 中管理定时任务。 …...

保存图片奇怪的bug

今天发现一个奇怪的bug 这个的dpi是100de ,但是我取完切片之后&#xff0c;发现这个结果就变了...

【Go语言精进之路】构建高效Go程序:了解map实现原理并高效使用

&#x1f525; 个人主页&#xff1a;空白诗 &#x1f525; 热门专栏&#xff1a;【Go语言精进之路】 文章目录 引言一、什么是map1.1 map的基本概念与特性1.2 map的初始化与零值问题1.3 map作为引用类型的行为 二、map的基本操作2.1 插入数据2.2 获取数据个数2.3 查找和数据读取…...

【机器人和人工智能——自主巡航赛项】进阶篇

文章目录 案例要求创建地图rviz仿真 保存地图坐标点定位识别训练主逻辑理解语音播报模块匹配二维码识别多点导航讲解视频其余篇章 案例要求 创建地图 ./1-gmapping.sh 把多个launch文件融合在sh文件里面 rviz仿真 rviz是rose集成的可视化界面&#xff0c;查看机器人的各项数…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...