Redis基本操作介绍
1. 安装与启动
- 安装:Redis支持多种操作系统,包括Linux、Windows等。从Redis官网下载相应的安装包,并按照系统要求进行安装。
- 启动:
- Linux系统:在终端中,进入Redis的安装目录,运行
redis-server
命令启动Redis服务。如果需要后台启动或设置密码,可以修改配置文件(如redis.conf
)。 - Windows系统:双击
redis-server.exe
文件启动Redis服务。或者,在命令行中使用redis-server.exe
命令,并指定配置文件路径(如果使用了非默认配置)。
- Linux系统:在终端中,进入Redis的安装目录,运行
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
命令用于设置键值对。EX
和PX
选项用于设置键的过期时间(以秒或毫秒为单位)。NX
选项表示仅当键不存在时才设置。XX
选项表示仅当键存在时才设置。
- 获取键值:
GET key
GET
命令用于获取指定键的值。
- 删除键值对:
DEL key
DEL
命令用于删除一个或多个键及其对应的值。
- 追加值到字符串末尾:
APPEND key value
APPEND
命令将指定的值追加到已存在键的值的末尾。
- 字符串递减指定值:
DECRBY key decrement
DECRBY
命令将键的整数值按指定的数值递减。
- 获取字符串子串:
GETRANGE key start end
GETRANGE
命令返回键的值的子串,其中start
和end
是子串的起始和结束位置(包含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 pattern
(pattern
是一个模式,可以使用通配符) - 删除一个或多个键:
DEL key [key ...]
- 切换数据库:
SELECT index
(index
是数据库的索引号,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.优缺点
优点
- 高性能:
- Redis是基于内存的数据库,读写速度非常快,特别适用于需要高速响应的场景。
- 支持多种数据结构,如字符串、列表、集合、哈希表等,这些数据结构都有高效的读写操作。
- 使用单线程模型,避免了多线程的上下文切换开销,且内部优化得当,使得Redis即使在单线程下也能达到很高的性能。
- 丰富的数据结构:
- Redis支持多种数据结构,可以满足各种复杂场景的需求。
- 这些数据结构包括字符串、哈希表、列表、集合、有序集合等,使得Redis在存储和操作数据上非常灵活。
- 简单易用:
- Redis提供了丰富的命令和数据类型,使得开发者可以快速上手并实现各种功能。
- 同时,Redis也支持多种编程语言,如C、C++、Java、Python等,使得Redis的应用场景更加广泛。
- 持久化支持:
- Redis支持将数据持久化存储到本地磁盘中,包括RDB(快照)和AOF(Append Only File)两种方式。
- 这保证了Redis在重启或发生故障时不会丢失数据。
- 支持分布式:
- Redis可以通过主从复制的方式实现数据的高可用性和可扩展性。
- 同时,Redis也支持集群模式,可以方便地实现数据的分布式存储和访问。
- 事务支持:
- Redis支持事务,可以一次执行多个命令,保证了操作的原子性。
缺点
- 数据量受限:
- 由于Redis是基于内存的存储系统,其数据量受到物理内存的限制。
- 当数据量过大时,可能需要增加更多的内存或采用其他存储方案。
- 持久化性能损耗:
- 当开启持久化功能时,Redis的性能会受到一定影响。
- 尤其是使用RDB持久化方式时,由于需要定期生成快照文件,可能会消耗较多的CPU和I/O资源。
- 单线程模型:
- 虽然Redis的单线程模型在高并发场景下表现良好,但在某些情况下可能会成为瓶颈。
- 例如,当需要执行复杂的计算或网络操作时,单线程模型可能会导致Redis的性能下降。
- 数据安全性:
- Redis默认不提供用户验证机制,需要用户手动配置密码来保护数据安全。
- 此外,由于Redis的数据存储在内存中,因此需要额外的安全措施来防止数据泄露或被恶意攻击。
- 不支持复杂查询:
- 与关系型数据库相比,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. 接雨水
题目来源:https://leetcode.cn/problems/trapping-rain-water/description/ C题解1:双指针 按列算,一列一列的求雨水面积。使用双指针是记录当前列左右侧的最大元素。 class Solution { public:int trap(vector<int>& height) {in…...
Elastic Platform 8.14:ES|QL 正式发布、静态加密和向量搜索优化
作者:来自 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怎么截图?在Windows 10操作系统中,截图功能不仅强大而且极其便捷。无论用户需要快速捕捉整个屏幕的内容,还是精确截取屏幕上的特定区域,它都能迅速响应并满足需求。通过内置的截图工具和快捷键,我们可以轻松完成各…...
无线领夹麦克风哪个品牌性价比高?推荐领夹麦克风性价比最高品牌
当今的直播、短视频已经深深的融入到了我们的生活当中,很多小伙伴会通过拍摄短视频、Vlog来分享自己生活精彩的瞬间。不过录制视频时,如果单纯靠手机拾音,距离手机越远,声音越小越不清晰如果有噪音干扰,那更是“惨不忍…...
C语言----深入理解指针(5)
1.sizeof和strlen的对比 sizeof计算变量所占内存空间的大小的,单位是字节 sizeof只关注内存空间的大小,不在乎内存中方的什么数据 sizeof是操作符不是函数 sizeof会将\0算进去的 // sizeof计算变量所占内存空间的大小的,单位是字节int m…...
Ansible——cron模块
目录 参数总结 示例1:创建一个定时任务 示例2:删除一个定时任务 示例3:每周一早上 3 点清理临时文件 示例4:每小时运行一次日志轮转 示例5:为指定用户添加一个定时任务 Playbook (YAML 格式) 中管理定时任务。 …...
保存图片奇怪的bug
今天发现一个奇怪的bug 这个的dpi是100de ,但是我取完切片之后,发现这个结果就变了...
【Go语言精进之路】构建高效Go程序:了解map实现原理并高效使用
🔥 个人主页:空白诗 🔥 热门专栏:【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集成的可视化界面,查看机器人的各项数…...
[大师C语言(第二十五篇)]C语言字符串探秘
引言 字符串是编程中不可或缺的基本数据类型之一,它用于表示和操作文本数据。在C语言中,字符串以一种独特的方式实现,与许多其他编程语言的处理方式不同。本文将深入探讨C语言字符串背后的技术,帮助你更好地理解和应用字符串。 …...
xLua(一) 环境安装笔记
为了方便查阅记录一下xLua的安装地址及方法 1.登录地址下载: https://github.com/Tencent/xLua 2.解压文件 将文件中的这些内容拷贝到项目中的Asset文件夹中 注意 : 工程项目路径不得含有中文 3.将Tools复制到Asset同级目录下 4.导入后会发现有Bug,需要导入工程 5.还有另…...
Python基础教程(十一):数据结构汇总梳理
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
制造型企业图纸泄露问题,如何从根源解决核心文件资料泄露问题?
制造型企业最核心重要的文件当然是图纸,图纸在制造型企业中起到关键主导地位,如果图纸泄露与研发性企业源代码被泄露一样的严重,制造型企业如何保护核心图纸不被外泄是企业在日常经营过程中的重要组成部分,现在有很多防止泄露的产…...
英伟达最新GPU和互联路线图分析
Nvidia在计算、网络和图形领域独树一帜,其显著优势在于雄厚的资金实力及在生成式人工智能市场的领先地位。凭借卓越的架构、工程和供应链,Nvidia能够自由实施创新路线图,引领行业未来。 到 21 世纪,Nvidia 已经是一个非常成功的创…...
Github 2024-06-10 开源项目日报 Top10
根据Github Trendings的统计,今日(2024-06-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目2Go项目2PHP项目1Blade项目1TypeScript项目1Lua项目1Dart项目1Swift项目1Cuda项目1Python项目1MDX项目1Ventoy: 100%开源的可启动USB解决方…...
前后端分离项目中Spring Boot返回的时间与前端相差8个小时
概述 今天在做一个前后端分离项目时,发现从后端获取的时间与从数据库获取的时间相差八个小时,最终排查后发现由于Springboot使用本地时区导致,修改SpringBoot时区后解决 环境 MySQL8SpringBoot 原因排查 发现从后端获取的数据总是比前端快八个小时 …...
stm32MP135裸机编程:使用USB/UART烧录程序到SD卡并从SD卡启动点亮一颗LED灯
0 参考资料 轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf STM32CubeProgrammer v2.16.0 烧录需要的二进制文件1 烧录到SD卡需要哪些文件 参考《轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序》,烧录需要的SD卡文件如下: &a…...
【NoSQL数据库】Redis Cluster集群(含redis集群扩容脚本)
Redis Cluster集群 Redis ClusterRedis 分布式扩展之 Redis Cluster 方案功能数据如何进行存储 redis 集群架构集群伸缩向集群中添加一个新的master节点,并向其中存储 num10 .脚本对redis集群扩容缩容,脚本参数为redis集群,固定从6001移动200…...
重邮计算机网络803-(2)物理层
一.物理层 1.介绍 物理层的主要任务描述为确定与传输媒体的接口的一些特性,即: ①机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。 ②电气特性 指明在接口电缆的各条线上出现的电压的范围。 ③功能特性 指明某条线上…...
湖南建设监理官方网站/ip域名查询网站入口
1.创建用户 在命令行中执行以下操作: Step1 创建用户 sudo useradd username -m 注意要在后面加-m,否则不会在home路径下创建该用户的文件夹 创建好之后可以在/home/路径下查看该用户名的文件夹 在CLI中执行cat /etc/passwd可以查看passwd文件中是否有…...
wordpress添加icp/seo公司
简单HTTP数据请求 超文本传输协议 (HTTP) 用作客户端和服务器之间的请求-响应协议。本实例将演示如何通过ESP8266发起一个HTTP请求,向远程主机请求数据。 在开始本实例之前,首先准备一个可用的HTTP服务器,或一个可用的HTTP URL。在这里,通过Node-Red物联网编程环境创建一…...
osx wordpress/优化关键词技巧
2019独角兽企业重金招聘Python工程师标准>>> 一年一度的秋招已经打响了发令枪,从去年的薪酬排行来看,算法工程师和数据分析等工作排在前列,很多相关专业的学生一直在自学一些网络上的公开课并阅读一些专业书籍,比如“西…...
有用模板网在线制作免费网站/杭州seo搜索引擎优化公司
前言 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区。除此之外,还有其他的思路和解决方案。根据本人多年的工作经验,做了如下总结。 方案 "千万级大表优化"这句话有…...
wordpress安装数据库错误/seo优化顾问服务阿亮
笔者一直使用jquery的click函数来绑定元素发生的click事件和处理函数,如下: $("#new_data").click(function () {}); 但今天在绑定一个由ajax请求生成的table时,发现click没有响应,查阅文档后发现…...
网站提交至google/谷歌自然排名优化
这里介绍的就是 MSF 的一些简单的基本使用,创始人 HD 摩尔曾说谁为 MS 写教程其实就是自作自受,纯属找虐,因为真的变化太快了,所以这里所写使一些基本功能,其余的需要自己去摸索… !!! 但虽然这样,还是有人…...