当前位置: 首页 > 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;查看机器人的各项数…...

Windows驱动签名实战:从证书获取到安装包封装的完整指南

1. 项目概述&#xff1a;为什么驱动签名是硬件开发者的“必修课” 如果你做过硬件开发&#xff0c;尤其是涉及USB、串口这类需要与Windows系统深度交互的设备&#xff0c;那你一定对那个黄色的“Windows安全”警告弹窗不陌生。用户插上你的设备&#xff0c;系统提示“正在安装…...

TranslucentTB:3分钟打造Windows任务栏透明效果的终极指南

TranslucentTB&#xff1a;3分钟打造Windows任务栏透明效果的终极指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想让你的Windows桌…...

DSP开发环境搭建实战:从CCSv3.3安装到XDS510仿真器配置全解析

1. CCSv3.3安装全流程详解 第一次接触DSP开发的朋友&#xff0c;安装CCSv3.3这个"老前辈"可能会遇到各种意想不到的问题。我当年在实验室安装时&#xff0c;光是补丁问题就折腾了一整天。下面就把这些年积累的实战经验分享给大家。 首先需要准备的是安装文件。虽然现…...

基于DocFX与CI/CD构建.NET私有NuGet包文档一体化管理方案

1. 项目概述与核心价值最近在整理团队内部的.NET技术资产时&#xff0c;我重新审视了一个看似简单但极其重要的仓库&#xff1a;abellobm3681/nuget-docs。这名字乍一看&#xff0c;可能很多人会以为又是一个NuGet官方文档的镜像或者翻译项目。但如果你深入进去&#xff0c;会发…...

从“芯”出发:RK3588与树莓派5的硬件博弈与开发者抉择

1. 芯片架构的硬核对决 当RK3588遇上树莓派5&#xff0c;这场硬件较量就像两位武林高手过招。RK3588用的是台积电8nm工艺&#xff0c;四核Cortex-A76加四核Cortex-A55的big.LITTLE设计&#xff0c;主频最高2.4GHz。实测跑分时&#xff0c;A76大核单核性能比树莓派5的Cortex-A76…...

从架构到应用:DNNGP、DeepGS与DLGWAS三大基因预测模型深度剖析

1. 基因预测模型的崛起与挑战 基因组学研究正在经历一场由AI驱动的革命。过去十年间&#xff0c;随着高通量测序技术的普及&#xff0c;生物医学领域积累了海量的基因数据&#xff0c;但传统统计方法在处理复杂性状预测时逐渐显得力不从心。正是在这样的背景下&#xff0c;DNNG…...

从RC电路到传递函数:一个实例讲透自动控制原理的建模核心

从RC电路到传递函数&#xff1a;一个实例讲透自动控制原理的建模核心 在自动控制原理的学习中&#xff0c;许多初学者常常陷入理论与实际脱节的困境。他们能够背诵拉氏变换的定义&#xff0c;却不知道如何将一个简单的电路转化为数学模型&#xff1b;他们熟悉传递函数的公式&am…...

3步搞定!MoviePilot智能批量重命名让你的媒体库整齐划一

3步搞定&#xff01;MoviePilot智能批量重命名让你的媒体库整齐划一 【免费下载链接】MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot 还在为杂乱的媒体文件名头疼吗&#xff1f;"The.Matrix.1999.1080p.BluRay.x264…...

Cadence Allegro PCB设计效率提升:自定义快捷键配置全攻略

1. 项目概述&#xff1a;为什么我们需要自定义快捷键&#xff1f;如果你是一名电子工程师&#xff0c;或者正在使用Cadence Allegro进行PCB设计&#xff0c;那么“效率”这个词对你来说一定不陌生。每天&#xff0c;我们都要在Allegro的复杂菜单和工具栏中穿梭&#xff0c;点击…...

跨越系统边界:在Windows上体验Btrfs文件系统的5个关键优势

跨越系统边界&#xff1a;在Windows上体验Btrfs文件系统的5个关键优势 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 当谈到高级文件系统时&#xff0c;Linux用户早已熟悉Btrfs的强大…...