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

ops/2025/1/18 15:32:16/

目录

一、什么是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.ppmy.cn/ops/151126.html

相关文章

在ES6模块中导入和导出

在ES6模块中导入和导出 以最简单的例子举例 //shoppingCart.js //导出模块 console.log(导出模块);//script.js //导出模块 import ./shoppingCart.js; console.log(导入模块);所以要导入其他模块必须指定类型 <script type"Modules" defer src"script.js&…

【0x3D】HCI_Remote_Host_Supported_Features_Notification事件详解

目录 一、事件概述 二、事件格式及参数说明 2.1. HCI_Remote_Host_Supported_Features_Notification事件格式 2.2. BD_ADDR 2.3. Remote_Host_Supported_Features 三、事件作用 3.1. 设备特性沟通与理解 3.2. 功能协商与性能优化 3.3. 设备管理与配置更新 四、应用场…

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

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

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下&#xff1a; 假设有如下三个节点的 K8S 集群&#xff1a; k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…

node.js卸载与安装超详细教程

文章目录 一、卸载Step1&#xff1a;通过控制面板删除node版本Step2&#xff1a;删除node的安装目录Step3&#xff1a;查找.npmrc文件是否存在&#xff0c;有就删除。Step4&#xff1a;查看以下文件是否存在&#xff0c;有就删除Step5&#xff1a;打开系统设置&#xff0c;检查…

1.15寒假作业

web&#xff1a;nss靶场ez_ez_php 打开环境&#xff0c;理解代码 使用个体传参的方法&#xff0c;首先代码会检查file参数的前三个字符是不是php&#xff0c;如果是就输出nice&#xff0c;然后用include函数包含file&#xff0c;绕过不是则输出hacker&#xff0c;如果没有file…

Cadence笔记--原理图导入PCB

1、以PMU6050为例&#xff0c;首先在原理图双击PMU6050器件&#xff0c;在PCB_Footprint目录填写PCB封装名称并且保存&#xff0c;如下图所示&#xff1a; 2、确保原理图命名的名称不一样&#xff0c;否则会出错&#xff0c;这里PMU6050更改了NC等名称&#xff0c;如下图所示&a…

挖掘机检测数据集,准确识别率91.0%,4327张原始图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注

挖掘机检测数据集&#xff0c;准确识别率91.0%&#xff0c;4327张图片&#xff0c;支持YOLO&#xff0c;COCO JSON&#xff0c;PASICAL VOC XML等多种格式标注 数据集详情 数据集分割 训练组70&#xff05; 3022图片 有效集20&#xff05; 870图片 测试集10&…