redis常用命令行用例 【命令行实操】

文章目录

一、常用命令示例

Redis 是一个高性能的键值存储系统,支持多种数据结构。以下是 Redis 命令行中所有数据结构的详细用法,包括字符串、哈希、列表、集合、有序集合、位图、HyperLogLog 和地理空间索引。

1.字符串(String)

设置值
SET key value
获取值
GET key
追加值
APPEND key value
获取字符串长度
STRLEN key
设置带过期时间的值
SETEX key seconds value
批量设置多个键值
MSET key1 value1 key2 value2
批量获取多个键值
MGET key1 key2
自增
INCR key
自减
DECR key
增加指定数值
INCRBY key increment
减少指定数值
DECRBY key decrement
检查键是否存在
EXIST key

2.哈希(Hash)

设置哈希字段
HSET key field value
获取哈希字段
HGET key field
获取所有哈希字段和值
HGETALL key
删除哈希字段
HDEL key field
获取所有字段名
HKEYS key
获取所有值
HVALS key
获取哈希字段数量
HLEN key
批量设置多个字段
HMSET key field1 value1 field2 value2
批量获取多个字段
HMGET key field1 field2
判断字段是否存在
HEXISTS key field

3.列表(List)

左侧插入元素
LPUSH key value
右侧插入元素
RPUSH key value
获取列表中的元素
LRANGE key start stop
获取列表长度
LLEN key
移除并返回左侧第一个元素
LPOP key
移除并返回右侧第一个元素
RPOP key
获取列表中指定位置的元素
LINDEX key index
插入元素到指定位置之前/之后
LINSERT key BEFORE|AFTER pivot value
设置列表中指定位置的元素
LSET key index value
修剪列表只保留指定范围的元素
LTRIM key start stop

4.集合(Set)

添加元素
SADD key member
获取所有元素
SMEMBERS key
移除元素
SREM key member
判断元素是否存在
SISMEMBER key member
获取集合大小
SCARD key
随机移除并返回一个元素
SPOP key
随机返回一个或多个元素
SRANDMEMBER key [count]
计算集合间交集
SINTER key1 key2
计算集合间并集
SUNION key1 key2
计算集合间差集
SDIFF key1 key2

5.有序集合(Sorted Set)

添加元素及其分数
ZADD key score member
获取集合中的元素及其分数
ZRANGE key start stop [WITHSCORES]
按分数范围获取元素
ZRANGEBYSCORE key min max [WITHSCORES]
移除元素
ZREM key member
获取集合大小
ZCARD key
获取指定成员的排名
ZRANK key member
获取指定成员的分数
ZSCORE key member
按排名范围移除元素
ZREMRANGEBYRANK key start stop
按分数范围移除元素
ZREMRANGEBYSCORE key min max

6.位图(Bitmap)

设置或清除位
SETBIT key offset value
获取指定位的值
GETBIT key offset
计算位图中值为 1 的位的数量
BITCOUNT key [start end]
对多个位图进行二进制操作
BITOP operation destkey key [key ...]

7.HyperLogLog

添加元素到 HyperLogLog
PFADD key element [element ...]
返回 HyperLogLog 的基数估算值
PFCOUNT key
将多个 HyperLogLog 合并为一个
PFMERGE destkey sourcekey [sourcekey ...]

8.地理空间索引(Geospatial)

添加地理空间位置
GEOADD key longitude latitude member
获取地理空间位置
GEOPOS key member
计算两个成员之间的距离
GEODIST key member1 member2 [unit]
按半径查找地理空间位置
GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
按半径查找地理空间位置(根据成员)
GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
获取地理空间成员的 Geohash 值
GEOHASH key member [member ...]

9、其他命令

  • PING:检查Redis服务器是否在运行。

    PING
    
  • SET / GET:设置键的值并检索它。

    SET mykey "Hello"
    GET mykey
    
  • DEL:删除键及其关联的值。

    SET mykey "Hello"
    DEL mykey
    
  • EXISTS:检查键是否存在。

    EXISTS mykey
    
  • FLUSHALL:清空整个Redis数据库。

    FLUSHALL
    
  • FLUSHDB:清空当前选择的数据库。

    FLUSHDB
    
  • INFO:获取关于Redis服务器的信息。
    如:Server、Client、Memory、Persistence、Stats、Replication、CPU、Cluster、Keyspace

    INFO
    
  • SELECT:选择数据库。

    SELECT
    

二、组合命令示例

Redis 提供了丰富的组合命令行用法,可以将多个基础命令组合在一起以实现更复杂的操作。以下是一些常见的组合命令行用法示例,涵盖了字符串、哈希、列表、集合、有序集合、位图、HyperLogLog 和地理空间索引等数据结构。

1.字符串(String)

组合用法:获取一个键的值并增加它
GET key
INCR key
INCR key
INCRBY key 20
DECRBY key 20

这两个命令组合起来用于获取键 key 的当前值,并将其自增 1。

2.哈希(Hash)

组合用法:批量设置哈希字段并获取所有字段和值
HMSET user:1001 name "Alice" age 30
HGETALL user:1001

这些命令组合起来用于设置哈希 user:1001 的多个字段,然后获取所有字段和值。

3.列表(List)

组合用法:从一个列表的左侧插入元素并从右侧弹出元素
LPUSH mylist "first"
RPUSH mylist "last"
LPOP mylist
RPOP mylist

这些命令组合起来用于在列表 mylist 左侧插入 “first”,在右侧插入 “last”,然后从左侧和右侧各弹出一个元素。

4.集合(Set)

组合用法:添加多个元素到集合并计算集合的并集
SADD set1 "a" "b" "c"
SADD set2 "c" "d" "e"
SUNION set1 set2

这些命令组合起来用于将元素添加到集合 set1set2,然后计算两个集合的并集。

5.有序集合(Sorted Set)

组合用法:添加元素及其分数并按分数范围获取元素
ZADD myzset 1 "one" 2 "two" 3 "three"
ZRANGEBYSCORE myzset 1 2 WITHSCORES

这些命令组合起来用于向有序集合 myzset 添加元素及其分数,然后按分数范围 1 到 2 获取元素及其分数。

6.位图(Bitmap)

组合用法:设置多个位并计算位图中值为 1 的位的数量

场景如打卡

SETBIT mybitmap 0 1
SETBIT mybitmap 1 1
SETBIT mybitmap 2 0
BITCOUNT mybitmap

这些命令组合起来用于设置位图 mybitmap 的多个位,然后计算位图中值为 1 的位的数量。

7.HyperLogLog

组合用法:添加元素到 HyperLogLog 并获取基数估算值
PFADD myhll "foo" "bar" "zap"
PFCOUNT myhll

这些命令组合起来用于向 HyperLogLog myhll 添加元素,然后获取 HyperLogLog 的基数估算值。

8.地理空间索引(Geospatial)

组合用法:添加地理空间位置并按半径查找位置
GEOADD cities 13.361389 38.115556 "Palermo"
GEOADD cities 15.087269 37.502669 "Catania"
GEORADIUS cities 15 37 200 km WITHCOORD WITHDIST

这些命令组合起来用于向地理空间索引 cities 添加位置,然后按半径 200 公里查找位置,并返回坐标和距离。

9.管道(Pipeline)

为了提高性能,您可以使用管道(pipeline)将多个命令一起发送到服务器,从而减少网络往返时间。以下是一个使用管道的示例:

redis-cli --pipe
SET key1 value1
SET key2 value2
GET key1
GET key2

这将所有命令打包在一起发送到 Redis 服务器,提高了执行效率。

10.事务(Transactions)

Redis事务适用于需要对一系列命令进行原子性操作的场景,但在处理复杂事务逻辑、需要事务回滚、需要跨键操作等情况下,可能需要结合其他机制或使用其他存储方案。

使用事务确保多个命令原子化执行:

MULTI
SET key1 value1
SET key2 value2
EXEC

这将 SET key1 value1SET key2 value2 命令原子化执行,保证它们要么都成功,要么都失败。

11.发布/订阅(Pub/Sub)

Redis的Pub/Sub模式适用于实时性要求较高、消息量较小、消息传递不需要持久化的场景,但在需要更高可靠性、更强扩展性和更复杂消息处理逻辑的情况下,可能需要考虑其他消息中间件或消息队列。如:Kafka、RabbitMQ等。

# 订阅频道
SUBSCRIBE mychannel

# 发布消息
PUBLISH mychannel "Hello, World!"

这些命令组合起来用于订阅频道 mychannel 并向其发布消息。

12.脚本(Scripting)

使用 Lua 脚本执行复杂逻辑:

EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 key value

这会执行 Lua 脚本,在 Redis 中设置键值对。

还有EVALSHA 命令用于执行已经缓存的 Lua 脚本,避免了每次执行脚本都需要传输和解析脚本文本的开销。

上述一些组合 Redis 命令来实现复杂的操作和功能。通过掌握这些组合用法,可好的用 Redis 进行各种数据操作。


三、综述

前项,只是提供一些内容帮助理解redis的功能点。

切实理解,还需要从整体上把握中间件的功能,每个功能分支的优缺点,以及对应的应用场景。现有热门应用场景有哪些,思考下还可以用于什么场景,为什么可以,特定场景下,如ACID的考量等。深入理解,还要去深究源码实现,如为什么redis这么快,源码实现上考量了哪些方面,这些思路或技术点能否用在自己的代码实现中来解决一些问题。

另外,每个中间件都有自己的核心功能,使用时应该有选择的使用中间件的核心功能,而不是附带的旁门功能,因为可能存在只是为了实现而实现的问题。如redis的发布、订阅,应该使用专业的中间件如Kafka、RabbitMQ等。

下面列出一些数据结构相应的应用场景:

  1. 字符串(String)
    关键原因:简单、灵活、高效。
    应用场景:适用于需要存储简单值、缓存数据、计数器、会话管理等场景。

  2. 哈希表(Hash)
    关键原因:存储键值对集合、字段操作快速。
    应用场景:适用于存储对象属性、用户信息、配置信息等需要使用键值对存储的场景。

  3. 列表(List)
    关键原因:支持头部和尾部的快速插入和删除操作。
    应用场景:适用于消息队列、任务队列、日志记录等需要顺序处理的场景。

  4. 集合(Set)
    关键原因:元素的唯一性、支持集合操作(交、并、差)。
    应用场景:适用于标签系统、点赞/收藏系统、用户关注列表等需要去重或集合操作的场景。

  5. 有序集合(Sorted Set)
    关键原因:元素的唯一性、支持按分数排序、支持范围查询。
    应用场景:适用于排行榜、优先级队列、基于时间的统计等需要排序或按分数查询的场景。

  6. 位图(Bitmap)

    • 关键原因:节省空间、支持位运算。
    • 应用场景:适用于记录用户行为、打卡记录、统计在线用户、过滤器等需要位运算的场景。
  7. 地理位置(Geospatial)
    关键原因:地理位置信息的存储和计算。
    应用场景:适用于附近的人、地理位置排序、地理围栏等地理相关的应用。

  8. 流(Stream)
    关键原因:支持多播、持久化、消费者组。
    应用场景:适用于消息队列、事件日志、持久化数据流等需要处理流式数据的场景。


三、深入学习下一篇

redis学习、进阶、深入理解篇【步进式上手】


  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux中进入Redis命令行,需要打开终端并输入以下命令: ``` redis-cli ``` 这将启动Redis命令行界面,使您能够与Redis交互并执各种操作,如设置键值对、检索数据、执事务等。如果Redis没有在本地计算机上运,您还需要指定Redis实例的主机名和端口号,例如: ``` redis-cli -h hostname -p port ``` 其中,"hostname"是Redis实例的主机名或IP地址,"port"是Redis实例的端口号。 ### 回答2: 在Linux中进入Redis命令行有两种方法: 方法一:使用命令行直接进入Redis命令行: 1. 打开终端,输入命令 `redis-cli`,按下回车键。 2. 如果Redis服务器是在本地运,那么连接会立即建立。如果Redis服务器在其他机器上运,需要指定远程服务器的IP地址和端口号,例如 `redis-cli -h 192.168.0.100 -p 6379`,其中192.168.0.100是服务器的IP地址,6379是服务器的端口号。 3. 连接成功后,会显示Redis命令行提示符 `127.0.0.1:6379>`,表示已经进入Redis命令行界面。 4. 在命令行中可以输入Redis的各种命令进操作,例如 `SET key value` 设置键值对,`GET key` 获取键对应的值。 方法二:通过SSH连接远程服务器进入Redis命令行: 1. 打开终端,输入命令 `ssh user@hostname`,其中user是用户名,hostname是远程服务器的IP地址或主机名,按下回车键。 2. 输入用户密码,按下回车键。 3. 成功登录远程服务器后,输入命令 `redis-cli`,按下回车键。 4. 连接成功后,会显示Redis命令行提示符 `127.0.0.1:6379>`,表示已经进入Redis命令行界面。 5. 在命令行中可以输入Redis的各种命令进操作,例如 `SET key value` 设置键值对,`GET key` 获取键对应的值。 通过上述两种方法可以进入Redis命令行界面,在命令行中可以执各种Redis命令来管理和操作Redis数据库。 ### 回答3: 要进入Redis命令行,首先要确保已经在Linux系统中安装了Redis。安装Redis后,打开终端窗口,输入以下命令以进入Redis命令行: 1. 打开终端窗口。 2. 输入redis-cli命令,按下回车键。 在这之后,终端窗口会显示类似于 "127.0.0.1:6379>" 的提示符,表示已成功进入Redis命令行模式。 在Redis命令行中,可以输入各种Redis命令来与Redis交互,如SET、GET、DEL等命令以及其他复杂的命令用于数据处理和管理。 当需要退出Redis命令行时,可以通过以下两种方法之一进: 1. 输入"exit"命令,按下回车键。 2. 使用快捷键Ctrl+C来强制退出。 退出后,终端窗口将返回到正常的命令行模式。 进入Redis命令行可以方便地对Redis配置、管理和操作,使用Redis命令行可以更好地利用Redis的功能,并对其中的数据进处理和查询,提高工作效率和数据处理能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值