Redis超详细入门教程(基础篇)

目录

一、什么是Redis

二、安装Redis

1、Windows系统安装

2、Linux系统安装 

三、Redis通用命令

四、Redis基本命令

五、五种数据结构类型

5.1、String类型

5.2、List集合类型

5.3、Set集合类型

5.4、Hash集合类型

5.5、Zset有序集合类型

六、总结


一、什么是Redis

Redis是一个开源的基于内存的键值对数据库,它的主要特征和作用包括:

1、基于内存,读写速度极快,可以处理大量读写请求。

2、支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,具有丰富的数据表示能力。 3、支持主从复制,提供数据冗余和故障恢复能力。

4、支持持久化,可以将内存数据保存到磁盘中。

5、支持事务,可以一次执行多个命令。

6、丰富的功能,可用于缓存、消息队列等场景。

主要应用场景包括:

1、缓存常见的使用场景,比如缓存查询结果、热点数据等,大大降低数据库负载。

2、处理大量的读写请求,比如访问统计、消息队列等。

3、排行榜、计数器等功能的实现。

4、pub/sub消息订阅。

5、QUE计划任务

6、分布式锁等。

综上,Redis是一个性能极高的内存数据库,支持丰富数据结构,提供持久化、事务等功能,非常适合缓存、消息队列等场景,被广泛应用于各种大型系统中。它的高性能、丰富功能使其成为非关系型数据库的重要选择之一。

二、安装Redis

1、Windows系统安装

Redis官网对于Windows版本已经停止维护了,我直接上传到了云盘,大家可以直接下载:

链接:https://pan.baidu.com/s/1NdRren-9nO4E5h3PHdcTig?pwd=becn

1、解压以后,先双击redis-server.exe启动服务器

运行成功 

2、双击redis-cli.exe启动命令窗口即可

这样就可以在Windows操作Redis了。 

2、Linux系统安装 

可以直接看我这篇博客,步骤完整详细:Linux系统安装部署Redis完整教程(图文详解)

三、Redis通用命令

1、Redis默认有16个数据库,切换到第2个数据库

select 1

2、查看当前数据库key的数量

DBSIZE

3、设置一个key为username,值为mike的数据

set username mike

4、获取key为username的值

get username

5、获取所有的key

keys *

6、清除当前数据库

flushdb

7、清除所有数据库

flushall

四、Redis基本命令

1、查询key为username是否存在

exists username

2、指定key为username移动到1号数据库

move username 1

3、指定key为username10s后过期

expire username 10

4、查看key为username还有多久过期

 ttl username

5、查看key为username是什么类型

type username

五、五种数据结构类型

5.1、String类型

1、设置key为name的值为htt

set name htt

2、获取key为name的值

get name

3、拼接key为name的值:httstudy

append name study

 4、获取key为name的值的长度

strlen name

5、设置key为view的值加1 

incr view

6、设置key为view的值减1

decr view

7、设置key为view的值加10

incrby view 10

8、设置key为view的值减10

decrby view 10

9、截取下标为0-3之间的字符串,例如:abcdef,截取后abcd

getrange name 0 3

10、从下标为1进行替换字符串,例如:abcdef,替换后a000efg

setrange name 1 000

11、设置key为name的值为hello,10s后过期

setex name 10 hello

12、如果不存在key为title的,值设置为redis,如果存在,则set失败

setnx title redis

13、一次性设置多个值

mset k1 v1 k2 v2 k3 v3
mset user:1:name htt user:1:age 2

14、一次性获取多个值

mget k1 k2 k3
mget user:1:name user:1:age

15、如果k1已经存在,则k1,k4全部设置失败,参考事务的原子性操作

msetnx k1 v1 k4 v4

16、如果不存在key为username的值,则返回nil,然后set进去;如果存在值,则获取原来的值并设置新的值

getset username htt

看了图会更好理解一些!

5.2、List集合类型

1、将一个值或者多个值插入到列表的头部

lpush list 1

2、将一个值或者多个值插入到列表的尾部

rpush list 4

 

3、通过区间获取具体的值

lrange list 0 -1

4、移除list的第一个元素:3

lpop list

5、移除list的最后一个元素:4

rpop list

6、通过下标获得list当中的某一个值

lindex list 0

7、获取list的长度

llen list

 8、移除list集合指定个数的value,移除1个值为2的,精确匹配

lrem list 1 2

9、截取list集合中下标为1到下标为2之间的元素集合,并覆盖原来的list集合

ltrim list 1 2

 10、更新list集合当中下标为0的值为bbb,如果下标0的值不存在,则报错

lset list 0 bbb

11、将一个某一个具体的值插入到某一个具体元素(默认第一个)的前面或者后面

linsert list BEFORE kkk aaa

linsert list AFTER kkk aaa

5.3、Set集合类型

1、往set集合中添加一个元素

sadd set hello

2、查看set集合中所有元素

 smembers set

3、 查看set集合中是否存在某元素

sismember set world

 4、随机抽取出1个元素

srandmember set

5、随机抽取出2个元素

 srandmember set 2

6、随机删除set集合中某个元素

spop set

7、移动set集合中的world元素到set2集合中

smove set set2 world

8、作set2集合减去set集合的差集

sdiff set2 set

9、set和set2的交集

sinter set set2

10、set和set2作并集并去重

sunion set set2

5.4、Hash集合类型

1、往hash集合中存放键值对数据

hset hash username mike

2、从hash集合中获取数据

hget hash username

3、同时往hash集合中添加多个值

hmset hash username jack age 2

4、同时往hash集合中获取多个值

hmget hash username age

5、获取hash集合中所有的键值对

hgetall hash

6、删除hash集合中指定的key字段

hdel hash username

7、获取hash集合的长度

hlen hash

8、判断hash集合中指定字段是否存在

hexists hash username

9、获取hash集合中所有的key

hkeys hash

10、获取hash集合中所有的值

hvals hash

 11、指定hash集合中指定增量

hincrby hash views 1

12、如果不存在则直接设置值,存在则设置失败

hsetnx hash password 123456

5.5、Zset有序集合类型

1、添加一个值

zadd zset 1 first

2、添加多个值

zadd zset 2 second 3 third 4 four

3、获取zset集合中所有元素

zrange zset 0 -1

4、给zset集合中的元素从小到大排序,-inf:负无穷,+inf:正无穷

zrangebyscore zset -inf +inf

5、从小到大排序并输出键值

zrangebyscore zset -inf +inf withscores

6、指定负无穷到1的范围

zrangebyscore zset -inf 1 withscores

7、移除zset集合中指定的元素

zrem zset four

8、查看zset集合中元素个数

zcard zset

 9、反转指定范围

zrevrange zset 1 2

六、总结

以上就是Redis入门教程的详细笔记总结,后续博客主页会继续更新关于Redis的内容!

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

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

相关文章

黑马Java面试教程_P1_导学与准备篇

系列博客目录 文章目录 系列博客目录导学Why?举例 准备篇企业是如何筛选简历的(筛选简历的规则)HR如何筛选简历部门负责人筛选简历 简历注意事项简历整体结构个人技能该如何描述项目该如何描述 应届生该如何找到合适的练手项目项目来源找到项目后,如何深入学习项目…

在Linux上如何让ollama在GPU上运行模型

之前一直在 Mac 上使用 ollama 所以没注意,最近在 Ubuntu 上运行发现一直在 CPU 上跑。我一开始以为是超显存了,因为 Mac 上如果超内存的话,那么就只用 CPU,但是我发现 Llama3.2 3B 只占用 3GB,这远没有超。看了一下命…

算法(蓝桥杯)贪心算法7——过河的最短时间问题解析

一、题目描述 在漆黑的夜里,N位旅行者来到了一座狭窄且没有护栏的桥边。他们只带了一只手电筒,且桥窄得只够让两个人同时过。如果各自单独过桥,N人所需的时间已知;若两人同时过桥,则所需时间是走得较慢的那个人单独行动…

LDD3学习7--硬件接口I/O端口(以short为例)

1 理论 1.1 基本概念 目前对外设的操作,都是通过寄存器。寄存器的概念,其实就是接口,访问硬件接口,有I/O端口通信和内存映射I/O (Memory-Mapped I/O),I/O端口通信是比较老的那种,都是老的串口并口设备&am…

前端【3】--CSS布局,CSS实现横向布局,盒子模型

盒子分类 1、块级盒子 2、内联级盒子 3、内联块级盒子 4、弹性盒子 5、盒子内部分区 方法一:使用 float 普通盒子实现横向布局 方法二:使用 display: inline-block 内联块级元素实现横向布局 方法三:使用弹性盒子 flexbox&#xff0…

初学stm32 --- flash模仿eeprom

目录 STM32内部FLASH简介 内部FLASH构成(F1) FLASH读写过程(F1) 闪存的读取 闪存的写入 内部FLASH构成(F4 / F7 / H7) FLASH读写过程(F4 / F7 / H7) 闪存的读取 闪存的写入 …

LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145188660 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scalin…

【数据库】MySQL数据库SQL语句汇总

目录 1.SQL 通用语法 2.SQL 分类 2.1.DDL 2.2.DML 2.3.DQL 2.4.DCL 3.DDL 3.1.数据库操作 3.1.1.查询 3.1.2.创建 3.1.3.删除 3.1.4.使用 3.2.表操作 3.2.1.查询 3.2.2.创建 3.2.3.数据类型 3.2.3.1.数值类型 3.2.3.2.字符串类型 3.2.3.3.日期时间类型 3.2…

JavaEE之CAS

上文我们认识了许许多多的锁,此篇我们的CAS就是从上文的锁策略开展的新概念,我们来一探究竟吧 1. 什么是CAS? CAS: 全称Compare and swap,字⾯意思:“比较并交换”,⼀个CAS涉及到以下操作: 我们假设内存中…

【Go】Go数据类型详解—指针

1. 前言 在我看来,一门编程语言语法的核心就在于数据类型。而各类编程语言的基本数据类型大致相同:int整型、float浮点型、string字符串类型、bool布尔类型,但是在一些进阶数据类型上就有所不同了。本文将会介绍Go语言当中核心的数据类型——…

前端性能-HTTP缓存

前言 开启 HTTP 缓存是提升前端性能的常见手段之一。通过缓存,浏览器可以临时存储资源,在后续请求中直接使用本地副本,从而有效减少 HTTP 请求次数,显著缩短网页加载时间。以下是 HTTP 缓存的几个关键点: 1、减少重复…

2024CVPR《HomoFormer》

这篇论文提出了一种名为HomoFormer的新型Transformer模型,用于图像阴影去除。论文的主要贡献和创新点如下: 1. 研究背景与动机 阴影去除的挑战:阴影在自然场景图像中普遍存在,影响图像质量并限制后续计算机视觉任务的性能。阴影的空间分布不均匀且模式多样,导致传统的卷积…

arcgis提取不规则栅格数据的矢量边界

效果 1、准备数据 栅格数据:dem或者dsm 2、栅格重分类 分成两类即可 3、新建线面图层 在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。 在弹出的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选…

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数:⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数(更准确) •在C语⾔中我们⼀般会⻅到两类函数:库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具,Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…

Adobe与MIT推出自回归实时视频生成技术CausVid。AI可以边生成视频边实时播放!

传统的双向扩散模型(顶部)可提供高质量的输出,但存在显著的延迟,需要 219 秒才能生成 128 帧的视频。用户必须等待整个序列完成才能查看任何结果。相比之下CausVid将双向扩散模型提炼为几步自回归生成器(底部&#xff…

MySQL(高级特性篇) 06 章——索引的数据结构

一、为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件…

turtle教学课程课堂学习考试在线网站

完整源码项目包获取→点击文章末尾名片!

python中的RPA->playwright自动化录制脚本实战案例笔记

playwright录制功能使用绕过登录操作 1、首先安装playwright pip install playwright2、 安装支持的浏览器 playwright install # 安装支持的浏览器:cr, chromium, ff, firefox, wk 和 webkit3、接着在自己的项目下运行录制命令: playwright codegen…

电脑风扇声音大怎么办? 原因及解决方法

电脑风扇是电脑的重要组件之一,它的作用是为电脑的各个部件提供冷却,防止电脑过热。然而,有时候我们会发现电脑风扇的声音特别大,不仅影响我们的使用体验,也可能是电脑出现了一些问题。那么,电脑风扇声音大…