打好Redis的基础,你可能需要这些常用命令

一、背景介绍

Redis 是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串、哈希、链表、集合与有序集合,而且支持各种不同方式的排序,所以命令比较丰富,很容易混淆。

二、Redis 常用命令

1、工具命令

1)、redis-server 

启动redis服务进程的工具命令

 

  1. #指定配置文件启动服务 
  2.  
  3. redis-server redis.conf 
  4.  
  5. #指定端口启动服务 
  6.  
  7. redis-server --port 6379

2)、redis-cli

redis 客户端工具

 

  1. #使用socket连接redis服务器 
  2.  
  3. redis-cli -s /tmp/redis.sock 
  4.  
  5. #不使用socket连接redis服务器 
  6.  
  7. redis-cli 

3)、redis-benchmark

redis 的性能测试工具

 

  1. #使用默认参数测试 
  2.  
  3. redis-benchmark 
  4.  
  5. #自定义参数测试 
  6.  
  7. redis-benchmark -n 1000000 --csv

4)、redis-check-dump

redis 检查修复本地数据文件工具

 

  1. # redis-check-dump dump.rdb 

5)、redis-check-aof

redis 检查修复AOF日志文件工具

  1. # redis-check-aof appendonly.aof 

6)、redis-sentinel

redis 集群管理工具

2、通用命令

auth Redis认证命令,执行其他命令前,必须先进行认证(前提是在配置文件中设置了认证参数)

ping 测试客户端和服务器之间的联通,返回值为PONG,表示联通

config get * 获取所有配置参数

config set config_name config_value 设置配置参数值

info 返回服务器信息

exist 查看当前库中是否存在某个key

ttl 获取键的有效时长

expire 设置键的过期时间

persist key_name 移除某个键的过期时间

del 删除某个键

select n 切换到n的数据库,redis默认的数据库是0-15,共16个数据库

move key_name n 将当前库的键移动到其他数据库

type key_name 返回键的数据类型

dbsize 获取当前库中所有键的数量

key * 获取当前所有key(当键数量多是,会hang死,慎用)

flushdb 删除当前库中的所有key

flushall 删除所有库中的所有key

save 创建当前库的备份

bgsave 同save,但是是后台备份,不阻塞主进程

eval 执行lua脚本

3、类型相关命令

1)、STRING

set 添加键值对,多次设置会覆盖原来的值

get 获取键的值

incr/decr 自增/自减(前提是键值是整型)

incrby/decrby 指定步长增加减少(q前提是键值是整型)

strlen 获取键的长度

append 向指定键追加值,返回字符串长度

setnx 判断键是否存在,存在返回0,否则返回1,不会覆盖原来值

getrange 根据指定下标获取键的值

Demo:

 

  1. 127.0.0.1:6379> get number  
  2.  
  3. "20" 
  4.  
  5. 127.0.0.1:6379> incr number  
  6.  
  7. (integer) 21 
  8.  
  9. 127.0.0.1:6379> decr number  
  10.  
  11. (integer) 20 
  12.  
  13. 127.0.0.1:6379> incrby number 5  
  14.  
  15. (integer) 25 
  16.  
  17. 127.0.0.1:6379> append number hello  
  18.  
  19. (integer) 7 
  20.  
  21. 127.0.0.1:6379> strlen number  
  22.  
  23. (integer) 7 
  24.  
  25. 127.0.0.1:6379> setnx number hello  
  26.  
  27. (integer) 0 
  28.  
  29. 127.0.0.1:6379> getrange number 0 5  
  30.  
  31. "25hell" 

2)、LISTS

lpush 在列表前面添加一个或多个值

rpush 在列表后面添加一个或多个值

lrange 根据指定下标获取列表中的元素

lpop 获取并取出列表中的***个元素

llen 获取列表长度

Demo:

 

  1. 127.0.0.1:6379> lpush mylists apple orange pear  
  2.  
  3. (integer) 3 
  4.  
  5. 127.0.0.1:6379> llen mylists  
  6.  
  7. (integer) 3 
  8.  
  9. 127.0.0.1:6379> lrange mylists 0 -1  
  10.  
  11. 1) "pear" 
  12.  
  13. 2) "orange" 
  14.  
  15. 3) "apple" 
  16.  
  17. 127.0.0.1:6379> rpush mylists banana 
  18.  
  19. (integer) 4 
  20.  
  21. 127.0.0.1:6379> lrange mylists 0 -1  
  22.  
  23. 1) "pear" 
  24.  
  25. 2) "orange" 
  26.  
  27. 3) "apple" 
  28.  
  29. 4) "banana" 
  30.  
  31. 127.0.0.1:6379> lpop mylists 
  32.  
  33. "pear" 
  34.  
  35. 127.0.0.1:6379> lset mylists 0 four 
  36.  
  37. OK 
  38.  
  39. 127.0.0.1:6379> lrange mylists 0 -1  
  40.  
  41. 1) "four" 
  42.  
  43. 2) "apple" 
  44.  
  45. 3) "banana" 

 

3)、SETS

sadd 向集合中添加值

smembers 查看集合中的值

sismember 判断某元素是否是集合中元素

sunion 返回两个集合中的并集

sdiff 返回两个集合中的差集(将写在前面的集合作为参照)

sinter 返回两个集合中的交集

scard 返回集合中元素个数

srem 删除集合中指定值

Demo:

 

  1. 127.0.0.1:6379> sadd myset one two three  
  2.  
  3. (integer) 3 
  4.  
  5. 127.0.0.1:6379> sadd myset1 two redis mysql  
  6.  
  7. (integer) 3 
  8.  
  9. 127.0.0.1:6379> smembers myset  
  10.  
  11. 1) "three" 
  12.  
  13. 2) "two" 
  14.  
  15. 3) "one" 
  16.  
  17. 127.0.0.1:6379> smembers myset1  
  18.  
  19. 1) "two" 
  20.  
  21. 2) "mysql" 
  22.  
  23. 3) "redis" 
  24.  
  25. 127.0.0.1:6379> sdiff myset myset1  
  26.  
  27. 1) "three" 
  28.  
  29. 2) "one" 
  30.  
  31. 127.0.0.1:6379> sinter myset myset1  
  32.  
  33. 1) "two" 
  34.  
  35. 127.0.0.1:6379> sunion myset myset1  
  36.  
  37. 1) "two" 
  38.  
  39. 2) "three" 
  40.  
  41. 3) "mysql" 
  42.  
  43. 4) "one" 
  44.  
  45. 5) "redis" 
  46.  
  47. 127.0.0.1:6379> scard myset  
  48.  
  49. (integer) 3 
  50.  
  51. 127.0.0.1:6379> sismember myset redis 
  52.  
  53. (integer) 0 
  54.  
  55. 127.0.0.1:6379> srem myset two  
  56.  
  57. (integer) 1 
  58.  
  59. 127.0.0.1:6379> smembers myset  
  60.  
  61. 1) "three" 
  62.  
  63. 2) "one" 

 

4)、SORTED SETS

zadd 将键插入有序集合,并指定顺序

zrange 取出指定顺序的元素

zscore 返回集合中的顺序

zcount 返回集合中score在给定区间的数量

zrem 删除集合中指定元素

zrank 返回名称key中原素的排名

Demo:

 

  1. 127.0.0.1:6379> zadd sset 1 one 2 two 3 three  
  2.  
  3. (integer) 3 
  4.  
  5. 127.0.0.1:6379> zadd sset 3 three  
  6.  
  7. (integer) 0 
  8.  
  9. 127.0.0.1:6379> zrange sset 0 -1 withscores  
  10.  
  11. 1) "one" 
  12.  
  13. 2) "1" 
  14.  
  15. 3) "two" 
  16.  
  17. 4) "2" 
  18.  
  19. 5) "three" 
  20.  
  21. 6) "3" 
  22.  
  23. 127.0.0.1:6379> zrank sset one  
  24.  
  25. (integer) 0 
  26.  
  27. 127.0.0.1:6379> zrank sset two  
  28.  
  29. (integer) 1 
  30.  
  31. 127.0.0.1:6379> zcard sset  
  32.  
  33. (integer) 3 
  34.  
  35. 127.0.0.1:6379> zincrby sset 2 two  
  36.  
  37. "4" 
  38.  
  39. 127.0.0.1:6379> zrange sset 0 -1 withscores  
  40.  
  41. 1) "one" 
  42.  
  43. 2) "1" 
  44.  
  45. 3) "three" 
  46.  
  47. 4) "3" 
  48.  
  49. 5) "two" 
  50.  
  51. 6) "4" 
  52.  
  53. 127.0.0.1:6379> zrem sset three  
  54.  
  55. (integer) 1 
  56.  
  57. 127.0.0.1:6379> zrange sset 0 -1 withscores  
  58.  
  59. 1) "one" 
  60.  
  61. 2) "1" 
  62.  
  63. 3) "two" 
  64.  
  65. 4) "4" 

5)、HASHES

hset 返回hash 域为指定值,如果key不存在,则先创建

hget 获取hash 域中指定的key值

hmset 同时批量设置多个域 

hincrby 指定hash 域加上给定的值

hexists 指定field是否存在,存在返回1,否则返回2

hlen 返回指定hash 表中field中的数量

Demo:

 

  1. 127.0.0.1:6379> hset user name jack  
  2.  
  3. (integer) 1 
  4.  
  5. 127.0.0.1:6379> hget user name  
  6.  
  7. "jack" 
  8.  
  9. 127.0.0.1:6379> hsetnx user name jack  
  10.  
  11. (integer) 0 
  12.  
  13. 127.0.0.1:6379> hmset user1 name bob sex man age 11  
  14.  
  15. OK 
  16.  
  17. 127.0.0.1:6379> hmget user1 name sex age  
  18.  
  19. 1) "bob" 
  20.  
  21. 2) "man" 
  22.  
  23. 3) "11" 
  24.  
  25. 127.0.0.1:6379> hexists user1 score  
  26.  
  27. (integer) 0 
  28.  
  29. 127.0.0.1:6379> hlen user1  
  30.  
  31. (integer) 3 
  32.  
  33. 127.0.0.1:6379> hincrby user1 age 5  
  34.  
  35. (integer) 16 
  36.  
  37. 127.0.0.1:6379> hkeys user1  
  38.  
  39. 1) "name" 
  40.  
  41. 2) "sex" 
  42.  
  43. 3) "age" 
  44.  
  45. 127.0.0.1:6379> hdel user1 sex  
  46.  
  47. (integer) 1 
  48.  
  49. 127.0.0.1:6379> hgetall user1  
  50.  
  51. 1) "name" 
  52.  
  53. 2) "bob" 
  54.  
  55. 3) "age" 
  56.  
  57. 4) "16" 

4、其他命令

1)、事务

multi 开启一个事务

exec 执行事务

discard 撤销事务

watch 监视数据库键,若发生改变,返回空

Demo:

 

  1. 127.0.0.1:6379> watch "csdn" 
  2.  
  3. OK 
  4.  
  5. 127.0.0.1:6379> multi  
  6.  
  7. OK 
  8.  
  9. 127.0.0.1:6379> set csdn blob  
  10.  
  11. QUEUED 
  12.  
  13. 127.0.0.1:6379> get csdn  
  14.  
  15. QUEUED 
  16.  
  17. 127.0.0.1:6379> exec  
  18.  
  19. 1) OK 
  20.  
  21. 2) "blob" 

 

2)、复制

info replication 获取复制信息

slaveof 建立复制关系

sync 同步

3)、订阅发布

subscribe 订阅一个或多个频道

publish 向某一频道发送信息 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/292855.html<

(0)
运维的头像运维
上一篇2025-05-20 08:32
下一篇 2025-05-20 08:34

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注