Redis数据库常用操作命令

Redis 是类似于 Map 类型的 K-V 键值对形式的存储方式

String字符串

类似 Java 中的 String 类型。

-- ****************String字符串**************
-- 设置一个key
set str 12344
-- 设置多个值
mset one 你好,999,$$$
mset one 你好 999 $$$
-- 创建一个key:返回旧的值
getset huahai 1999-- 自增
set first 1
incr first
-- 设置自增的增量
incrby first 3
-- 自减
decr first
-- 设置自减的增量
decrby first 4
-- 设置自减的增量
-- 查询
get one
get 999
mget one 999
-- 修改
append 999 你是我的眼
-- 删除
-- 设置key的存活时间
expire first -2
get first
set test01 1
get test01
-- 删除key
del test01
-- 返回字符串的长度
strlen one
strlen 999
-- 截取并返回字符串
getrange 999 0 3

List列表

类似 Java 中的 List 集合,值可以重复,不会自动排序。

-- ****************List列表**************
-- 添加数据
lpush list1 1 2 3 4 5 6 7 8 9 10
rpush list1 21 34 67
-- 在列表的指定元素前或者后插入新元素
linsert list1 before 10 90
linsert list1 after 10 2900
-- 查询
-- 查看所有的值
lrange list1 0 -1
-- 获取索引的位置的值
lindex list1 5
-- 获取列表的长度
llen list1
-- 删除
-- 移除并获取列表的第一个元素
lpop list1
-- 移除并获取列表的最后一个元素
rpop list1
-- 移除列表n个数指定的元素
rpush list2 1 2 3 1 2 3 1 2 3 1 2 3 4
lrange list2 0 -1
lrem list2 3 1
-- 对列表进行修剪,让列表只保留指定索引内的元素
llen list2
ltrim list2 2 4
-- 修改
lset list1 0 900

Set集合

类似于 Java 中的 TreeSet,默认按照字典顺序排序,升序,元素不可重复。字典排序对于基础的数 据可以实现,复杂类的数据排序可能会有问题。

​ Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数 据。

​ Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

​ 集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

-- ****************Set集合**************
-- 添加数据
sadd firstset 1 33 44 555 6676 667
sadd firstset 33
-- 修改
-- set集合没有顺序,所以不能修改
-- 删除
-- 随机删除n个数据
-- 注意:下面的删除数据的个数不用加上()
spop firstset 3
-- 查看数据
scard firstset
-- 查看所有的key和value
smembers firstset
-- 返回集合中一个或者多个随机值
srandmember firstset 1

ZSet有序集合

-- ****************ZSet有序集合**************
-- 增
zadd zsetfirst 500 huahai
-- 添加多个值
zadd zsetsecond 300 zhoujielun 400 caiyilin
zadd zsetsecond 300 dapeng 400 nanjing
-- 删除
zrem zsetfirst huahai
-- 修改
-- 向上修改
zincrby zsetsecond 20 zhoujielun
-- 向下修改
zincrby zsetsecond -20 zhoujielun
-- 查看数据
-- 分数从低到高
zrange zsetsecond 1 2
-- 分数从高到第低
zrevrange zsetsecond 0 3
-- 通过分数返回,不带分数
zrangebyscore zsetsecond 200 300
-- 通过分数返回,不带分数带分数
zrangebyscore zsetsecond 200 300 withscores
-- 获取集合中的成员个数
zcard zsetsecond
-- 通过限定的区间限定成员个数
zcount zsetsecond 200 300

Hash哈希

-- ****************Hash 哈希**************
-- 添加
hset hashFirst city 郑州
hset hashFirst city1 南京
hset hashFirst city2 上海
hset hashFirst city3 北京
hset hashFirst city4 广州
hset hashFirst city5 深圳
-- 修改
hset hashFirst city 青岛
hmset hashFirst city1 苏州 city2 厦门
-- 给指定的属性值设置自增量
-- hincrby hashFirst city 20
-- 删除
hdel hashFirst city2 city4
-- 查询
hgetall hashFirst
-- 获取指定属性的值
hget hashFirst city
hget hashFirst city1
-- 获取指定key中n个属性的值
hmget hashFirst city2 city3

通用key操作

-- ****************通用key操作**************
-- 删
del 999
flushdb
-- 清空当前所有库的key
-- flushall
-- 改
-- 设置key的存活时间
expire one 3
-- 将当前的key移动到其他的库
move str 1
-- 查
-- 返回1表示存在
exists 花海
-- 返回0表示存在
exists 花海1
-- 查询key的存活时间
-- -1代表永久
ttl 花海
-- -2代表不存在
ttl 花海1
expire 花海 10
type huahai
keys *
keys *1
keys *1*
keys 1*
-- 查看当前库的所有key的总数量
dbsize
-- 切换指定库
select 1
<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、付费专栏及课程。

余额充值