掘金 后端 ( ) • 2024-03-30 16:21

theme: fancy highlight: github

一、什么是Redis

Redis 是一种开源的内存型数据库,它以高速、灵活和可扩展性而闻名。Redis 主要用于存储和管理键值对数据,其中键(key)和值(value)可以是各种数据类型,如字符串、列表、哈希、集合等。

Redis 的数据全部存储在内存中,这使得它能够提供极快的数据读写速度,适用于需要快速响应和处理大量数据的场景。它还支持数据的持久化,以便在服务器重启或故障时能够恢复数据。

Redis7官方地址-->点击进入

image.png

二、十大数据类型介绍及使用

2.1 Redis环境搭建

2.1.1 用虚拟机 VMware Workstation Pro 搭建 centos7

image.png

2.1.2 用 FinalShell 连接linux

image.png

【成功连接画面】

image.png

我们这里使用Docker+Shell脚本安装Redis最新版

shell脚本百度网盘下载地址:

image.png

image.png

2.1.2 用 Another Redis Desktop Manager 连接Redis

image.png

image.png

image.png

2.2 redis列表(List)

List是一种有序的元素集合,可以存储多个元素。它类似于数组,但具有一些特殊的功能和操作。

List列表可以包含重复的元素,并且元素的顺序是按照插入的顺序来维护的。列表的两端都可以进行元素的插入和删除操作,具有高效的插入和删除性能。

2.2.1 lpush/rpush/lrange

lpush key vule1 vule2 : (向列表左边添加vule1、vule2)

rpush key vule1 vule2 : (向列表右边添加vule1、vule2)

lrange key start stop : (从指定下标获取vule值)

image.png

2.2.2 lpop/rpop

lpop key : (向左边弹出一个vule)

rpop key : (向右边弹出一个vule)

image.png

2.2.3 index

lindex key index : (通过索引获取列表中的元素)

image.png

2.2.4 llen

llen key : (获取列表的个数)

image.png

2.2.5 lrem

lrem key count value : (从左边删除指定数量的vule)

image.png

2.2.6 ltrim

ltrim key start stop : (截取指定索引区间的元素)

image.png

2.2.7 rpoplpush

rpoplpush source destination : (移除列表的最后一个元素,并将该元素添加到另一个列表并返回)

image.png

2.2.8 lset

Iset key index value: (将指定下标的值替换)

image.png

2.2.9 linsert

linsert key BEFORE|AFTER pivot value (在list某个已有值的前后再添加具体值)

image.png

image.png

2.3 redis字符串(String)

String类型的值可以是任意的字符串,包括文本、二进制数据等。

String类型是一个key 对应一个vule

image.png

2.3.1 最常用的get set命令

image.png

2.3.2通过mset、mget同时设置/得到多个值

image.png

msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

image.png

2.3.3通过getrange、setrange获取指定区间的的值

getrange的使用:

image.png

setrange的使用:

image.png

2.3.4 数值增加和减少

一定是数字才能进行此操作

incr key : (加一)

image.png

incrby key increment : (增加指定的整数)

image.png

decr key : (减一)

image.png

decrby key increment : (减少指定的整数)

image.png

2.3.5 获取字符串长度和内容追加

strlen key : (获取字符串长度)

image.png

append key vule : (内容追加)

image.png

2.3.6 分布式锁

setex key second vule : (设置带过期时间的key,动态设置)

image.png

setnx key vule : (只有在 key 不存在时设置 key 的值。)

image.png

2.3.7 得到值再设置值

getset key vule : (先返回值再设置值)

image.png

2.4 redis哈希表(Hash)

HashKV模式不变,但V是一个键值对,相当于Java表中的Map<String,Map<object,object>>

2.4.1 hset/hget/hmset/hmget/hgetall/hdel

hset key field value :

hget key field value :

image.png

hmset key field value [field value ..] : (设置多个file vule)

hmget key field [field ..] : (获取多个file vule)

image.png

hgetall key : (获取对应key的所有vlues值)

HDEL key field [field ...] : (获取对应key的所有vlues值)

image.png

2.4.2 hlen

hlen key : (获取某个key内的全部数量)

image.png

2.4.3 hexists

hexists key field : (判断某个key里面某个值的key存不存在)

image.png

2.4.4 hkeys/hvals

hkeys key : (获取某个key值的所有file里面的所有key)

hvals key : (获取某个key值的所有file里面的所有vule)

image.png

2.4.5 hincrby/hincrbyfloat

hincrby key field increment : (对某个key里面的file里面的整数vule进行指定数字的增加)

hincrbyfloat key field increment : (对某个key里面的file里面的浮点数vule进行指定数字的增加)

image.png

2.4.6 hsetnx

hsetnx key field value : (不存在赋值,存在了无效。)

image.png

2.4 redis集合(Set)

Set是一种无序集合类型,它不允许存储重复的元素。

2.4.1 sadd、smembers

sadd key member [member ...] : (添加值)

smembers key : (便利集合所有元素)

image.png

2.4.2 smember

smembers key 2 : (判断元素是否在集合中)

image.png

2.4.3 srem

srem key member [member ...] : (删除元素)

image.png

2.4.4 scard

scard key : (获取集合里面的元素个数) image.png

2.4.5 srandmembr

srandmembr key [count] : (从集合中随机展现设置的数字个数元素,元素不删除)

image.png

2.4.6 spop

spop key : (从集合中随机弹出一个元素,出一个删一个)

image.png

2.4.7 smove

smove source destination member : (将原集合的某个元素移交给目标)

image.png

2.4.8 sdiff

sdiff key [key ..] : (属于A但不属于B的元素构成的集合)

image.png

2.4.9 sunion

sunion key [key ..] : (属于A或者属于B的元素合并后的集合)

image.png

2.4.10 sinter

sinter key [key ..] : (属于A同时也属于B的共同拥有的元素构成的集合)

image.png

2.5 redis有序集合(ZSet)

Set是一种有序集合类型,它不允许存储重复的元素。

2.5.1 zadd

ZADD key score member [score] [member] : (向集合添加元素)

image.png

2.5.2 zrange

zrange key start stop [WITHSCORES] : (按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素)

image.png

2.5.3 zrevrange

zrevrange key start stop [WITHSCORES] : (按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素)

image.png

2.5.4 zrangestore

ZRANGESTORE dst src min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] : (获取指定分数范围的元素)

image.png

2.5.5 zscore

ZSCORE key member : (获取元素的分数)

image.png

2.5.6 zcard

zcard key : (获取集合中元素的数量)

image.png

2.5.7 zrem

zrem key member [member ...] : (删除元素)

image.png

2.5.8 zincrby

zincrby key increment member : (增加某个元素的分数)

image.png

2.5.9 zcount

zcount key min max : (获得指定分数范围内的元素个数)

image.png

2.5.10 zpopmin、zpopmax

zpopmin key [count] : (删除key的指定个数的最小值) zpopmax key [count] : (删除key的指定个数的最大值)

image.png

2.5.11 zrank

zrank key member : (获取下标)

zrevrank key member : (逆序获取下标)

image.png

image.png