Redis 数据库常用指令

本文详细介绍Redis五种数据结构:String、List、Hash、Set、ZSet的使用方法,包括数据的添加、查找、修改、删除等操作,以及如何设置键的过期时间。

进入redis

进入redis数据库

redis-cli

查看redis版本号

redis-cli -v   redis-cli --version

选择数据库,redis只有16个数据库,序号0-15

select 15  选择第16个数据库
select 2   切换到第三个数据库

类型

  • string 字符串
  • list 列表
  • Hash 哈希
  • set 集合
  • zset 有序集合

所有命令的查询网站 http://doc.redisfans.com/

string类型

数据是字符串类型

设置数据

单条设置 set key value

多条设置 mset key1 v1 key2 v2

set k1 v1 添加k1键  值为v1
mset k2 v2 k3 v3 k4 v4  多条数据添加

查找数据

单条查找 get key

多条查找 mget key1 key2

get k1  查看k1的值
mget k1 k2 k3 查看多条key 的值
keys* 查找全部键的值

看键是否存在

exists key 存在返回1,不存在返回0

exists k1   返回1  说明存在
exists k5   返回0  说明不存在

查看键的值类型 type key

type k1 结果string  查看键k1的值的类型,结果为string类型

追加数据

append key value

append k1 666 在k1的值value中追加666

如果追加的key不存在,则为新增

删除数据

删除单条 del key

del k2 删除key为k2的数据

修改键名

修改键 rename key1 key2

rename k1 k5   把键k1的名字修改为k5

设置过期时间

设置 n秒后删除键 expire key seconds

查看过期时间 ttl key

删除过期时间 persist key

expire k1 10 设置10秒后,k1自动删除
ttl k1       查看k2还有多少秒会删除,如果k1没有设置过期时间会返回-1
persist k1 删除k1的过期时间,如果k1没有设置过期时间会返回,会不成功

list

字符串列表,可以在表头或者尾部添加/删除数据,插入数据时。如果该键不存在,redis会为该键创建一个

添加数据

从右边开始添加rpush list value

从左边开始添加lpush list value

rpush list_a world 在list_a的右边添加数据world
lpush list_a hello 在list_a的左边添加数据hello
rpush list_a python jiucheng  右边添加多条数据

查看数据

范围查看数据 lrange key start stop

指定数据查看 lindex key index

lrange list_a 0 10 查看list_a中索引0到10的数据
lindex list_a 3 查看list_a中索引为3 的数据

修改数据

修改对应索引的数据lset key index value

lset list_a 3 haha 修改所以为3的数据值为haha

删除数据

从右边开始删除数据rpop key

从左边开始删除数据lpop key

制定索引删除 lrem key index value

rpop list_a 从list_a的右边开始删除数据
lpop list_a 从list_a的左边开始删除数据
lrem list_a 1 hello  指定删除索引1的数据,但是指定删除必须带上索引对应的值才能删除,否则会报错

Hash类型h

数据是键值对的集合(key,value)

设置数据

hset key field value       单条数据添加
hmset key field1 value1 field2 value2  多条数据添加

插入单条

hset hash_a a 1
hset hash_a b 2

插入多条

hmset hash_a c 3 b 4

查找数据

hget hash_a b    查看单条
hgetall hash_a   查看全部的值
hkeys hash_a     查看所有的键值
hvals hash_a     查看所有的值

修改数据

hset hash_a a name   修改key a的值为name

以上语句是有则增无则改

删除数据

hdel hash_a a   删除hash_a中键a的值

删除全部

del hash_a

set类型

无序的字符集合,元素具有唯一性,不重复

添加数据

sadd set_a 'hello world' 添加一条数据
sadd set_a my name     添加两条数据
sadd set_a is bu yi yang de   添加多条数据

查看数据

smembers set_a 查看集合set_a的数据
数据无序

删除数据

spop set_a          随机删除一个
spop set_a 3        随机删除3个 
srem set_a my       指定删除my
srem set_a name is  指定删除多个

zset类型

每一个成员都会有一个分数 score 与之关联,成员是唯一的,但是分数可以重复

实际上避免分数宠物

添加数据

zadd key score value

zadd zset_a 1 hello   添加一条数据
zadd zset_a 1 hello 2 world 3 python 添加多条数据

分数可以设置小数,但是小数只能有一位

查找数据

通过索引查找zrange key index_start index_end

通过分数查找zrangebyscore key min_score max_score

通过值查看分数 zscore key value

zrange zset_a 0 10  查看索引为0-10范围的值
zrangebyscore zset_a 2 4 查看分数问哦2-4之间的值
zscore zset_a hello   通过值查看分数

删除数据

单个删除 zrem key member

多个删除 zrem key member1 member2

通过分数删除 zremrangebyscore key min_score max_score

通过索引删 zremrangebyrank key index_start index_end

zrem zset_a hello  指定删除单个值
zrem zset_a my name 删除多个值
zremrangebyscore zset_a 2 4 删除分数在2-4之间的数据
zremrangebyrank zset_a 3 5 删除索引在3-5之间的数据
<think>好的,我现在需要帮助用户查找关于Redis数据库常用操作方法或指南。用户明确要求常用操作命令及使用示例。让我先回忆一下之前用户提供的引用内容,以便结合这些信息来构建回答。 首先,引用[1]提到Redis常用命令包括存储和获取数据、操作不同数据类型、设置过期时间和持久化,以及发布订阅和事务。引用[2]详细介绍了redis-cli的使用方法,包括如何远程登录,还有一些命令工具如redis-server、redis-benchmark等。引用[3]则关于Redis Sentinel的命令,比如配置和故障转移,但用户可能更关注基础操作,所以这部分可能暂时用不上。 接下来,我需要将Redis的基本操作分成几个部分,比如数据结构操作、键管理、持久化、发布订阅、事务等,这样结构更清晰。每个部分需要列出常用命令,并给出示例。例如,字符串操作有SET和GET,哈希有HSET和HGET等。需要确保命令格式正确,使用$...$包裹,如`$SET key value`,而代码块用```包裹。 另外,用户提到的系统级指令要求独立公式用$$...$$,但这里主要是命令和代码示例,可能不需要数学公式,但要注意行内代码的正确格式。例如,行内变量如过期时间$EX seconds$需要正确使用$符号。 然后,根据示例中的相关问题部分,我需要生成几个相关问题,可能涉及性能优化、持久化配置、集群管理等,确保问题与用户查询相关,并引导进一步学习。 需要检查LaTeX语法是否正确,比如命令中的选项参数是否正确使用斜体或转义字符。同时,回答要使用中文,保持结构清晰,分点说明,每个命令有示例代码块,并引用对应的引用来源,比如在设置过期时间处添加[^1][^2]。 最后,确保所有引用标记正确对应,比如在讨论持久化时引用[2],事务部分引用[1]。可能还需要注意用户之前的问题,避免重复,但根据当前信息,用户主要需要基本操作,所以应覆盖主要的数据类型和常用场景。 现在整理结构:引言、数据结构操作、键管理、持久化、高级功能、相关问题。每个部分下分命令和示例,代码块正确使用Python标记(虽然Redis是命令行,但可能用户示例中的代码是Python,不过实际应为Redis CLI命令,所以需确认)。例如,代码示例应该是Redis命令,而不是Python函数,所以需要调整。 例如,正确的代码块应该是: ```bash SET user:1001 "John Doe" ``` 而不是Python代码。因此需要修正示例中的代码类型,使用bash或redis的语法高亮。 总结步骤: 1. 分类介绍常用命令,涵盖主要数据类型。 2. 每个命令给出示例,用正确的代码块格式。 3. 添加引用标记到对应的说明部分。 4. 生成相关问题,确保与内容相关。 5. 检查格式是否符合系统级指令,特别是LaTeX和代码块。</think>以下为Redis数据库常用操作命令及使用示例的总结,涵盖数据操作、管理功能及高级特性: ### 一、基础数据结构操作 #### 1. 字符串(String) - **设置/获取值** ```bash $SET key value$ # 设置键值 $GET key$ # 获取键值 $INCR counter$ # 数值自增 ``` ```bash SET user:1001 "John Doe" GET user:1001 # 返回 "John Doe" ``` #### 2. 哈希(Hash) - **存储对象数据** ```bash $HSET key field value$ # 设置字段值 $HGET key field$ # 获取字段值 ``` ```bash HSET user:1001 name "Alice" age 30 HGET user:1001 age # 返回 "30" ``` #### 3. 列表(List) - **队列操作** ```bash $LPUSH list value$ # 左端插入 $RPOP list$ # 右端弹出 ``` ```bash LPUSH tasks "task1" RPOP tasks # 返回 "task1" ``` #### 4. 集合(Set) - **去重集合** ```bash $SADD set member$ # 添加成员 $SMEMBERS set$ # 查看所有成员 ``` ```bash SADD tags "redis" "database" SMEMBERS tags # 返回无序集合 ``` #### 5. 有序集合(Sorted Set) - **带分数排序** ```bash $ZADD zset score member$ # 添加带分数成员 $ZRANGE zset 0 -1 WITHSCORES$ # 按分数升序 ``` ```bash ZADD rankings 100 "PlayerA" 90 "PlayerB" ZRANGE rankings 0 -1 WITHSCORES ``` --- ### 二、键与数据管理 #### 1. 键操作 - **生命周期控制** ```bash $EXPIRE key seconds$ # 设置过期时间 $TTL key$ # 查看剩余时间 $DEL key$ # 删除键 ``` ```bash SET session:xyz "data" EX 3600 TTL session:xyz # 返回剩余秒数 ``` #### 2. 数据库切换 - **多库选择** ```bash $SELECT index$ # 切换数据库(默认0-15) ``` ```bash SELECT 1 # 切换到1号库 ``` --- ### 三、持久化与运维 #### 1. 持久化配置 - **手动触发RDB快照** ```bash $SAVE$ # 阻塞式保存 $BGSAVE$ # 后台保存[^2] ``` #### 2. 性能测试 - **基准测试工具** ```bash redis-benchmark -n 100000 -q # 测试10万次请求[^2] ``` --- ### 四、高级功能 #### 1. 发布订阅模式 - **消息通信** ```bash $PUBLISH channel message$ # 发布消息 $SUBSCRIBE channel$ # 订阅频道[^1] ``` #### 2. 事务操作 - **原子性执行** ```bash $MULTI$ # 开启事务 $EXEC$ # 执行事务[^1] ``` ```bash MULTI SET balance 100 INCRBY balance 50 EXEC ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值