打好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

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

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