redis命令行常用操作

一. Redis 连接

1. 进入redis环境

docker run -d -p 6379:6379 --name redis redis:latest
docker exec -it redis redis-cli

2. 检测 Redis 是否正常

127.0.0.1:6379> ping
PONG

3. 退出连接

127.0.0.1:6379> quit
[root@VM-4-12-centos data]#

二. redis内容

1. key 操作命令

输入命令 含义
keys * 查看所有的key
dbsize 获取总key数
exists key 查询键是否存在
del key 删除key
type key 查询键类型(string,set…)
ttl key 查询key的生命周期(秒)
pttl key 查询key的生命周期(毫秒)
expire key 设置过期时间(秒)
pexpire key 设置过期时间(毫秒)
persist key 设置永不过期
rename key newkey 更改键名称

2. 字符串string 操作命令

输入命令 含义 举例 返回值
set key value 存放键值 set java1 test OK
get key 获取键值 get java1 “test”
mset key1 value1 key2 value2 批量存放 mset java1 1 java2 2 java3 3 OK
mget key1 key2 批量获取 mget java1 java2 1) “test” 2) “2”
strlen key 获取值长度 strlen java1 4
append key value 追加内容 append java1 test2 (integer) 6
getrange key start end 获取部分内容 getrange java1 0 3 “1tes”

3. 无序集合Set 操作命令

相当于 Java 语言里面的 HashSet

语法 含义 举例 返回值
sadd key [member…] 存储值 sadd langs java php c++ go ruby python kotlin java (integer) 7
smembers key 获取所有元素语法 smembers langs 1) "php"2) "kotlin"3)"c++"4) "go"5) "ruby"6) "python"7) “java”
srandmember key count 随机获取元素语法 srandmember langs 3 1)"kotlin"2) "python"3) “c++”
sismember key member 判断集合是否存在元素 sismember langs go (integer) 1
scard key 获取集合元素个数 scard langs (integer) 7
srem key [member…] 删除集合元素 srem langs java (integer) 1
spop key [count] 弹出元素 spop langs 2 1) “python” 2) “go”

4. 有序集合zset

类似于 Java 的 SortedSet 和 HashMap 的结合体

和列表的区别:
1、列表使用链表实现,两头快,中间慢。有序集合是散列表和跳跃表实现的,即使读取中间的元素也比较快。
2、列表不能调整元素位置,有序集合能。
3、有序集合比列表更占内存。

输入命令 含义 举例 返回值
`zadd key [NX XX] [CH] [INCR] score member [score member …]` 存储值 zadd footCounts 16011 tid 20082 huny 2893 nosy
zscore key member 获取元素分数 zscore footCounts tid “16011”
zincrby key increment member 增加指定元素分数 zincrby footCounts 2000 tid “18011”
zcard key 获取集合元素个数 zcard footCounts 3
zrem key member [member ...] 删除指定元素 zrem footCounts huny 1
zrank key member 获取元素排名 zrank footCounts tid 2
zrangebyscore key min max [WITHSCORES] [LIMIT offset count] 获取指定分数范围排名语法 zrangebyscore footCounts 3000 30000 withscores limit 0 1 1) "tid"2) “16011”
zcount key min max 获取指定范围分数个数 zcount footCounts 2000 20000 2

5. 列表操作命令list

Redis 中的 listJava 中的 LinkedList 很像,底层都是一种链表结构, list 的插入和删除操作非常快,时间复杂度为 0(1),不像数组结构插入、删除操作需要移动数据。

输入命令 含义 举例 返回值
lpush key [value …] 左端存值语法 lpush list lily sandy 2
rpush key [value …] 右端存值语法 rpush list tom kitty 4
lset key index value 索引存值语法 lset list 3 uto OK
lpop key 左端弹出语法 lpop list “broad”
rpop key 右侧弹出语法 rpop list “kitty”
llen key 获取元素个数 llen list 2
lrange key start top 获取列表元素 lrange list 0 -1 1) “sandy” 2) "lily"3)“uto”
index key index 索引获取语法 lindex list 2 "ketty "
lrem key count value 根据值删除语法 lrem userids 0 111 //count=0 删除所有 2
ltrim key start stop 范围删除语法 ltrim list 2 4 OK

6. 散列表hash

Redis 中的 Hash 和 Java的 HashMap 更加相似, 都是 数组+链表 的结构,当发生 hash 碰撞时将会把元素追加到链表上,值得注意的是在 RedisHashvalue 只能是字符串.

输入命令 含义 举例 返回值
hset key field value 存放键值 hset user name javastack 1
hmset key field value [field value …] 2 hmset user name javastack age 20 address china 4
hsetnx key field value 不存在时语法 hsetnx user tall 180 0
hget key field 获取字段值 hget key field “20”
hmget key field [field …] 获取多个字段值 hmget user name age address 1) "javastack"2)"20"3) “china”
hgetall key 获取所有键与值语法 hgetall user 1) "name"2) "javastack"3) "age"4) "20"5) "address"6) “china”
hkeys key 获取所有字段语法 127.0.0.1:6379> hkeys user 1) "name"2) "address"3) "tall"4) “age”
hvals key 获取所有值语法 hvals user 1) "javastack"2) "china"3) "170"4) “20”
hexists key field 判断字段是否存在 hexists user address 1
hlen key 获取字段数量 hlen user 4
hincrby key field increment 递增/减 hincrby user tall -10 170
hdel key field [field …] 删除字段 hdel user age 1

参考文档

  1. Redis 常用操作命令,非常详细!
  2. Redis基础系列短视频《2. Redis简单实战》
  3. redis中文官网
  4. Redis 常用命令

猜你喜欢

转载自blog.csdn.net/weixin_45581597/article/details/127846565