问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Redis命令快速上手:从入门到精通

创作时间:
作者:
@小白创作中心

Redis命令快速上手:从入门到精通

引用
CSDN
7
来源
1.
https://blog.csdn.net/Lzy410992/article/details/116094703
2.
https://baike.baidu.com/item/Redis/6549233
3.
https://baijiahao.baidu.com/s?id=1802996909546024195
4.
https://blog.csdn.net/weixin_49851451/article/details/134311296
5.
https://m.toutiao.com/article/7203330681945178685/
6.
https://javaguide.cn/database/redis/redis-data-structures-01.html
7.
https://redis.com.cn/commands.html

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,常被用作数据库、缓存和消息队列等。它支持多种数据结构,包括字符串、列表、哈希表、集合和有序集合。通过学习Redis的核心命令,你可以轻松掌握其各种功能,从入门到精通。

基础命令

连接与信息查询

要连接到Redis服务器,可以使用redis-cli命令行工具:

redis-cli -h host -p port -a password

其中host是Redis服务器的主机名,port是端口号,password是连接密码(如果有)。

连接后,可以使用以下命令获取服务器信息:

  • INFO:返回Redis服务器的详细信息
  • PING:检测连接是否存活
  • QUIT:退出客户端

键管理

在Redis中,无论什么数据类型,都是以键值对形式保存的。以下是一些常用的键管理命令:

  • KEYS pattern:查找所有符合给定模式的键
  • EXISTS key:检查键是否存在
  • DEL key:删除键
  • EXPIRE key seconds:为键设置过期时间
  • TTL key:获取键的剩余生存时间
  • TYPE key:获取键的类型

数据类型命令

字符串(String)

字符串是最基本的数据类型,可以存储字符串、整数或浮点数。常用命令包括:

  • SET key value:设置键的值
  • GET key:获取键的值
  • INCR key:将键的值增1
  • DECR key:将键的值减1
  • STRLEN key:获取键值的长度

示例:

SET name "ctt"
GET name
INCR counter

列表(List)

列表是一个链表结构,支持从头部或尾部插入元素。常用命令包括:

  • LPUSH key value:在列表头部插入元素
  • RPUSH key value:在列表尾部插入元素
  • LPOP key:移除并返回列表的第一个元素
  • RPOP key:移除并返回列表的最后一个元素
  • LRANGE key start end:获取列表指定范围的元素

示例:

LPUSH mylist "first"
RPUSH mylist "last"
LRANGE mylist 0 -1

哈希表(Hash)

哈希表用于存储键值对集合。常用命令包括:

  • HSET key field value:设置哈希表字段的值
  • HGET key field:获取哈希表字段的值
  • HDEL key field:删除哈希表字段
  • HGETALL key:获取哈希表所有字段和值
  • HEXISTS key field:检查哈希表字段是否存在

示例:

HSET user:1000 username "ctt"
HGET user:1000 username
HGETALL user:1000

集合(Set)

集合用于存储无序的唯一元素集合。常用命令包括:

  • SADD key member:向集合添加成员
  • SMEMBERS key:获取集合所有成员
  • SREM key member:移除集合成员
  • SCARD key:获取集合成员数量
  • SINTER key1 key2:获取多个集合的交集

示例:

SADD myset "apple"
SADD myset "banana"
SMEMBERS myset

有序集合(Sorted Set)

有序集合用于存储有序的唯一元素集合。常用命令包括:

  • ZADD key score member:向有序集合添加成员
  • ZRANGE key start end:获取有序集合指定范围的成员
  • ZREM key member:移除有序集合成员
  • ZCARD key:获取有序集合成员数量
  • ZSCORE key member:获取成员的分数

示例:

ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZRANGE myzset 0 -1 WITHSCORES

高级特性

事务

Redis支持简单的事务机制,可以将多个命令打包在一起执行。使用MULTIEXEC命令:

MULTI
SET key1 "value1"
SET key2 "value2"
EXEC

发布与订阅

Redis支持发布订阅模式,可以用于简单的消息传递。使用PUBLISHSUBSCRIBEUNSUBSCRIBE命令:

PUBLISH channel message
SUBSCRIBE channel
UNSUBSCRIBE channel

最佳实践

  1. 连接管理:使用连接池管理连接,避免频繁创建和销毁连接。

    pool = redis.ConnectionPool(max_connections=20, health_check_interval=30)
    conn = redis.Redis(connection_pool=pool)
    
  2. 异常处理:在客户端代码中添加适当的异常处理。

    def safe_get(key):
        try:
            return self.conn.get(key)
        except redis.ConnectionError:
            self.reconnect()
            return None
        except redis.TimeoutError:
            log.warning("Redis操作超时")
            return None
    
  3. 数据类型转换:根据数据类型选择合适的方法。

    def get_int(key):
        val = self.conn.get(key)
        return int(val) if val else 0
    
    def get_json(key):
        val = self.conn.get(key)
        return json.loads(val.decode()) if val else {}
    
  4. 避免使用底层request方法:直接使用execute_command或自定义的request方法容易出错,应优先使用官方客户端提供的标准方法。

通过掌握这些核心命令和最佳实践,你可以充分利用Redis的强大功能,构建高效的应用程序。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号