Redis零基础入门学习

Redis简介

Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统 ,常被用作数据库、缓存和消息中间件。它支持多种数据结构(如字符串、哈希、列表、集合等),并提供高性能、原子性操作及持久化功能。被誉为内存数据库。

Redis的五大核心数据结构

1.字符串(String)

2.哈希(Hash)

3.列表(List)

4.无序集合(Set)

5.有序集合(ZSet)

Redis是基于内存的,采用键值对存储形式。值可以是以上五种数据结构的任意一种,每一个值都拥有相对应的key。通过key我们可以找到任意一个值。

Redis的基本命令

key的相关命令

del key1 key2 //删除key1,key2。 可以单独删除,也可以一次性删除多个

keys pattern //找到符合相应模式的key

(keys * //找到所有key)(星号在前可以找到以...开头的key,在后则相反,星号之间的话的则可以找到名称中包含的key)

ttl key //查看key的剩余生存时间

expire key seconds //给key设置生存时间

exists key //检查key是否存在

persist key //移除key的过期时间,使key永不过期

type key //获取key所存储的值的类型

flushDB //清空当前数据库

String的常用命令

set key value //设置键值对

(set key value seconds //设置键值对的同时设置过期时间)

(setnx key value //只有key不存在时,才能设置)

(setex key value //只有key存在时,才能设置以此进行更新)

get key //获取键的值

mset key1 value1 key2 value2 key3 values //一次性设置多个键值对

mget key1 key2 //一次性得到多个值

incr key //将键对应的值加1(只能用于整数字符串)

decr key //将键对应的值减1(只能用于整数字符串)

append key value //向key后面追加值(key存在时,直接向原数据后追加,key不存在时,直接创建新的key并赋值为value)

strlen key //获取key对应的值的长度

Hash的常用命令

field:字段,对应独立hash中的key

value:值,对应独立hash中的value

hset key field value //设置哈希字段值

hget key field //获取对应的哈希字段值(不能写成 hget key来获取key对应的整个哈希,会报错)

hmset key field1 value1 field2 value2 //批量设置(新版的也可以用hset来进行批量设置了)

hmget key field1 field2 //批量获取字段值

hget all //获取所有字段和值

hkeys key //获取key对应的所有字段

hvals key //获取key对应的所有值

hlen key //获取key对应的字段数量

hexists key field //检查可以key对应的字段是否存在

hdel key field //删除key对应的字段

hincrby key field nums //key对应的字段值加nums(,nums可以是负数只适用于整数类型的字段值)

List

lpush key value1 value2 //从key对应的列表的左侧插入(可以一次性插入多个值)

rpush key value1 value2 //从key对应的列表的右侧插入

lpop key //从最左侧移除一个key对应的列表中的值,并返回被移除的值

rpop key //从最右侧移除一个key对应的列表中的值,并返回被移除的值

lrange key start last //获取key对应的列表中索引从start到last的值 (索引从0开始)

(lrange key 0 -1 //表示获取列表中所有的值)

lindex key index //获取key对应的列表中索引为index的值

lrem key count value //从key对应的列表的左边删除count个对应的value(count>0的话,从左边删除count个对应的value;count<0的话从右边删除|count|个对应的value;count=0的话,删除所有的对应的value)

llen key //获取key对应的列表的长度

Set

sadd key member1 member2 //向key对应的集合中添加值(可以一次性添加多个值)

srem key member1 member2 //删除key对应的集合中的值

smembers key //获取key对应的集合中的所有值

sismember key member //检查key对应的集合中值是否存在

scard key //获取key对应的集合大小

sinter key1 key2 //获取交集
sunion key1 key2 //获取并集
sdiff key1 key2 //获取差集

srandmember key count //随机获取key对应的集合中count个元素

ZSet

score: 对应权重,分数,决定了成员的顺序和位置

zadd key score1 member1 score2 member2 //向key对应的有序集合中添加成员(可以一次性添加多个)

zrem key menmber1 me,ber2 //删除key对应的有序集合中的成员

zscore key member //获取key对应的有序集合中的成员中的分数

zrank key member //获取成员在key对应的有序集合中升序时的排名

zrevrank key member //获取成员在key对应的有序集合中降序序时的排名

zrange key start stop WITHSCORES //按排名范围获取

zrevrange key start stop WITHSCORES //按排名范围获取(降序)

zrangebyscore key min max WITHSCORES //按分数范围获取

zcard key //获取成员数量

ZCOUNT key min max //统计分数范围内的成员

ZINCRBY key increment member //向key对应的有序集合中的member增加increment分

相关推荐
qq_4523962311 分钟前
第六篇:《SQL 优化的艺术:从慢查询到毫秒级响应》
数据库·sql
ShineWinsu20 分钟前
对于Qt:QWidget通用属性的解析—上
数据库·qt·microsoft·面试·gui·属性·qwidget
每天一道题22 分钟前
分布式锁真的安全吗?从 Redis 锁、Lease 到 Fencing Token
redis·分布式·安全
程序员塔塔喵23 分钟前
【MySQL篇|第十篇】深分页问题
数据库·oracle·深分页问题
ClouGence1 小时前
SQL 效率天花板!开源 CloudDM,自带一站式 AI SQL 助手
数据库·sql·开源
Decay__1 小时前
附-01 · MySQL 压测与容量规划 —— sysbench 基准测试、容量评估与参数基线
运维·数据库·sql·mysql·架构
这个DBA有点耶2 小时前
主从切换报成功,业务却写不进去——数据层脑裂与应用层连接残留的两类假成功
数据库·架构·dba
qq_452396232 小时前
第八篇:《VACUUM、自动清理与膨胀治理》
jvm·数据库·oracle
光依旧2 小时前
多实例治理一致性深潜:Redis与本地缓存降级(MCP实战手记·篇12 延伸)
redis·caffeine·高可用·缓存一致性·mcp·多实例
comyccccc2 小时前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习