linux进入redis数据库命令行,Redis数据库命令操作

时间:2025-04-27 08:02:59

启动Redis

# redis-cli -v //查看版本

# redis-server & //启动服务 &=后台运行

# 建议配置文件启动 redis-server /usr/local/redis/

# redis-cli shutdown 停止服务

# redis-server --port 6380 //指定端口 默认为6379

基本操作

# redis-cli

>keys * //查看所有键

>dbsize //键总数

>exists 键值 //查看键是否存在(1存在 0不存在)

>set hello word 设置键hello 值为word

>del hello 删除

>get hello 获取

>mset a 1 b 2 c 3 批量设置

>mget a b c 批量获取

>set hello zkc xx 修改已经存在的hello 为zkc

>incr 是数值的键 每次加1

>append hello zkc 值 追加zkc

>strlen hello 查看字符串长度

>getset hello redis 设置并返回原值

>getrange hello 0 b 字符位置以0开始计数 将hello的键值第一个字符改为b

>getrange hello 0 1 获取hello键值的 第1和2位字符

哈希 (hset key field value)

>hset user:1 name tom 设置

>hget user:1 name tom 获取

>hdel user:1 name 删除

>hlen user:1 计算field个数

>hmset user:1 name tome age 12 批量设置

>hexists user:1 name 判断是否存在

>hkeys user:1 获取所有field

>hvals user:1 获取所有value

>hgetall user:1 获取所有field+value

>hmset hashkey f1 v1 f2 v2

>object encoding hashkey

查看内部编码 field个数小 ziplist

当value大于64字节或者field个数超过512 内部编码会变成hashtable

列表

添加

> rpush listkey c b a 从右往左插入元素

> lpush list1 c b a 从左往右插入元素

> lrange listkey 0 -1 从左往右获取列表所有元素

> linsert listkey before b java b前面插入java

> linsert listkey after b java b后面插入java

> lrange listkey 0 -1 从左往右获取列表所有元素 (0为第一位 -1为最后一位)

> lrange listkey 0 2 从左往右获取列表 第1位到第3位元素

> lindex listkey -1 获取列表下最后一位的元素(指定索引下标的元素)

> llen listkey 获取列表长度

删除

> lpop listkey 删除左侧

> rpop listkey 删除右侧

> lrem listkey 4 a 从左往右删除4个a

> ltrim listkey 1 3 只保留第2位到第4位的元素

修改

> lset listkey 2 pyhton 第三位改成python

阻塞

> brpop list:test 3 (timeout=3 客户端3秒后返回)

> brpop list:test 0 (会一直阻塞)

> blpop (用法一样方向不同)

集合

集合内操作

1添加元素

> sadd key a b c

返回3 添加了3个元素

2删除

> srem key a b ca

3计算元素个数

> scard key

4判断元素在集合内否 在返回1 不在返回0

>sismember key c

5随机从集合中返回指定个数元素

> srandmember key 2

6从集合中随机弹出删除一个元素

> spop key

> smembers key 查看元素已经没有刚刚弹出的

7获取所有元素

> smembers key

集合间操作

求多个集合的交集

sinter key key

求多个集合的并集

synion key key

求多个集合的差集

sdiff key key

将交集,并集,差集的结果保存

sinterstore destination key key

sunionstore destination key key

sdiffstore destination key key

内部编码

1内部元素个数较少为整数时,内部编码为 intset

> object encoding key 查看内部编码

2当元素超过512个 内部编码变为 hashtable

> object encoding key

给用户添加标签 sadd user:1:tags tag1 tag2

删除 srem user:1:tags tag1 tag2

给标签添加用户 sadd tag1:users user:1 user:3

删除 srem tag1:users user:1

有序集合

添加成员

zadd key 100 tom 添加用户tom 和他的分数100

计算成员个数

zcard key

计算成员排名 (从0开始计算)

zrank key 低到高

zrevrank key 高到低

删除成员

zrem key tom

增加成员分数

zincrby key 9 tom

指定排名范围的成员

zrange key 0 2 withscores 低到高 1-3名 加withscores会返回分数

zrevrange key 0 2 withscores 高到低

指定分数范围的成员 (200 +inf 无限大

zrangebyscore key 200 220 withscores 200-220分的从低到高

zrevrangebyscore 高到低

指定分数范围的个数

zcount key 200 220

删除指定分数的成员

zremrangeebyscore key 200 220

zremrangeebyscore key (250 +inf 删除250分以上的人

事务

> multi 开始

> ...N条操作

> exec 结束 (可以用discard代替exec)