Redis全系列(一)

本文介绍了Redis服务的启动、客户端连接、关闭服务的方法,并详细展示了如何获取和设置配置属性。内容包括全局命令、字符串、Hash、List、Set和Sorted Set等常见操作,是Redis初学者的入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 启动服务端

  • .\redis-server.exe + 配置文件(建议使用) 例:.\redis-server.exe .\redis.6379.conf
  • .\redis-server.exe --port 端口 例:.\redis-server.exe --port 6379

2. 启动客户端

  • .\redis-cli.exe -h ip地址 -p 端口 -a 密码

3. 关闭服务

连接客户端后执行命令 shutdown

4. 获取配置

config get *

  1. “dbfilename”
  2. “dump.rdb”
  3. “requirepass”
  4. “”
  5. “masterauth”
  6. “”
  7. “unixsocket”
  8. “”
  9. “logfile”
  10. “”
  11. “pidfile”
  12. “/var/run/redis.pid”
  13. “maxmemory”
  14. “0”
  15. “maxmemory-samples”
  16. “5”
  17. “timeout”
  18. “0”
  19. “tcp-keepalive”
  20. “0”
  21. “auto-aof-rewrite-percentage”
  22. “100”
  23. “auto-aof-rewrite-min-size”
  24. “67108864”
  25. “hash-max-ziplist-entries”
  26. “512”
  27. “hash-max-ziplist-value”
  28. “64”
  29. “list-max-ziplist-entries”
  30. “512”
  31. “list-max-ziplist-value”
  32. “64”
  33. “set-max-intset-entries”
  34. “512”
  35. “zset-max-ziplist-entries”
  36. “128”
  37. “zset-max-ziplist-value”
  38. “64”
  39. “hll-sparse-max-bytes”
  40. “3000”
  41. “lua-time-limit”
  42. “5000”
  43. “slowlog-log-slower-than”
  44. “1000”
  45. “latency-monitor-threshold”
  46. “0”
  47. “slowlog-max-len”
  48. “128”
  49. “port”
  50. “6379”
  51. “tcp-backlog”
  52. “511”
  53. “databases”
  54. “16”
  55. “repl-ping-slave-period”
  56. “10”
  57. “repl-timeout”
  58. “60”
  59. “repl-backlog-size”
  60. “1048576”
  61. “repl-backlog-ttl”
  62. “3600”
  63. “maxclients”
  64. “10000”
  65. “watchdog-period”
  66. “0”
  67. “slave-priority”
  68. “100”
  69. “min-slaves-to-write”
  70. “0”
  71. “min-slaves-max-lag”
  72. “10”
  73. “hz”
  74. “10”
  75. “cluster-node-timeout”
  76. “15000”
  77. “cluster-migration-barrier”
  78. “1”
  79. “cluster-slave-validity-factor”
  80. “10”
  81. “repl-diskless-sync-delay”
  82. “5”
  83. “cluster-require-full-coverage”
  84. “yes”
  85. “no-appendfsync-on-rewrite”
  86. “no”
  87. “slave-serve-stale-data”
  88. “yes”
  89. “slave-read-only”
  90. “yes”
  91. “stop-writes-on-bgsave-error”
  92. “yes”
  93. “daemonize”
  94. “no”
  95. “rdbcompression”
  96. “yes”
  97. “rdbchecksum”
  98. “yes”
  99. “activerehashing”
  100. “yes”
  101. “repl-disable-tcp-nodelay”
  102. “no”
  103. “repl-diskless-sync”
  104. “no”
  105. “aof-rewrite-incremental-fsync”
  106. “yes”
  107. “aof-load-truncated”
  108. “yes”
  109. “appendonly”
  110. “no”
  111. “dir”
  112. “D:\Program Files\Redis-x64-3.0.504”
  113. “maxmemory-policy”
  114. “noeviction”
  115. “appendfsync”
  116. “everysec”
  117. “save”
  118. “jd 900 jd 300 jd 60”
  119. “loglevel”
  120. “notice”
  121. “client-output-buffer-limit”
  122. “normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60”
  123. “unixsocketperm”
  124. “0”
  125. “slaveof”
  126. “”
  127. “notify-keyspace-events”
  128. “”
  129. “bind”
  130. “”

5. 设置配置属性

config set 键(上面命令获取的奇数) 值(上面命令获取的奇数下的偶数) 例:config set requirepass 1

注意

  • 如果是设置密码,则要从新登陆,命令 AUTH 新密码 例:AUTH 1

  • 设置完密码如果想要使修改的配置持久化则需要执行 CONFIG REWRITE

6. 全局命令

  • 查询所有主键:

    keys * 、

  • 数据个数

    dbsize

  • 清理数据
    flushdb[清理当前库中的数据]、flushall[清理所有库中的数据]

  • 检查键是否存在

    exists key 返回1[存在],0[不存在]

  • 删除主键
    del key 返回1[已删除个数],0[没有删除的数据]

  • 设置过期时间
    EXPIRE key senconds 返回1[成功],0[失败]

  • 查看剩余过期时间
    ttl key 返回-2则没该键

  • 键的数据结构类型

​ type key 返回正常的类型,没有键则返回none

  • 切换数据库

​ select 库编号

7. 字符串常用操作

实际上可以是字符串(包括XML JSON),还有数字(整形浮点数),二进制(图片音频视频),最大不能超过512MB

  • 设置值

    • set key value–不管有没有key都设置, 示例:set name lili 返回ok

    • setnx key value–不存在key才设置 ,示例:setnx name lili 返回0,setnx age 12 返回1

    • SETEX key seconds value --设置键值及过期时间,示例: setex age 60 90 返回ok

    • set key value ex seconds --设置键值及过期时间, 示例:set age 90 ex 60 返回ok

    • mset key1 value1 key2 value2 …… --批量设置key和值,示例 :mset name zhangsan age 16 sex male ,返回ok·

  • 获取值

    • get key --获取值

    • mget key1 key2 --批量获取值 ,示例:mget name age sex,没有返回 1) (nil) ,存在返回

      1. “hangsan”
      2. “16”
      3. “male”
  • 查看编码

    object encoding key ,返回"int"[^长度小于20的短数字] 、“embstr”[小于等于39个字符]或者"raw"[大于39个字符]

  • 增减

incr key --加一 返回增加后的最新值

incrby key increment --增加自定的数值 ,返回增加后的最新值

decr key --减一

decrby key increment --减去自定的数值

INCRBYFLOAT key increment --浮点数增加

  • 追加

append key value --在原有的值后追加字符串,返回追加后的字符串长度

  • 字符串长度

STRLEN key

8. Hash常用操作

是一个string 类型的field 和value 的映射表,hash 特适合用于存储对象

  • 设置值

    • HSET key field value–设置hash 值, 示例:hset user:1 name zhangsan 返回1

    • HMSET key field value [field value …] --批量设置hash值,示例 :hmset user:1 name zhangsan age 12 ,返回ok

  • 获取值

    • HGET key field --获取值

    • HMGET key field [field …] --批量获取值 ,示例:mget name age sex,没有返回 1) (nil) ,存在返回

      1. “zhangsan”
      2. “12”
  • 删除filed

    HDEL key field [field …] ,示例:HDEL user:1 name 返回1

  • 查看编码

    object encoding key ,返回"ziplist"[^压缩列表:当field少且没有大value] 、“hashtable”[^哈希表:value大于64]

  • 增加

hincrby key field increment --增加自定的数值 ,返回增加后的最新值

HINCRBYFLOAT key field increment --浮点数增加

  • 长度(有几个field)

HLEN key

  • 是否存在field

hexists key field

9. List常用操作

用来存储多个有序的字符串,一个列表最多可存2 的32 次方减1 个元素

  • 设置值

    • LPUSH key value [value …] --从左向右插入 ,e.g.:lpush country china england amareican ,返回元素个数

    • RPUSH key value [value …] --从有向左插入,e.g.:RPUSH color red blue green

    • LINSERT key BEFORE|AFTER pivot value --插入,e.g.:LINSERT country before china india

  • 获取值

    • LRANGE key start stop --获取值 ,e.g.: LRANGE country 0 -1 ,返回:
    1. “amareican”
    2. “england”
    3. “india”
    4. “china”
    • LINDEX key index --通过索引获取值,e.g.: LINDEX country 0,返回"amareican"
  • 删除值

    • LPOP key --从左到右删除一个,e.g.:LPOP country,返回"amareican"
    • RPOP KEY --从头删除一个,e.g.:RPOP country,返回"china"
    • LREM key count value --从头删除几个,e.g.:lrem country 2 india,返回2(里面有两个india)
    • LTRIM key start stop --从头保留几个,e.g.: LTRIM country 0 1,返回OK,只保留第1和2个
  • 长度

    • llen key --获取元素个数,e.g.:llen country,返回2
  • 修改

    • LSET key index value --修改索引处的值为value,e.g.:LSET country 0 england,返回OK

10. Set

保存多元素,与列表不一样的是不允许有重复元素,且集合是无序,一个集合最多
可存2 的32 次方减1 个元素,除了支持增删改查,还支持集合交集、并集、差集;

  • 设值

    • SADD key member [member …]–添加集合,e.g.:SADD color red blud green red,返回3
  • 取值

    • SMEMBERS key --取值,e.g.:SMEMBERS color,返回:

      1. “green”
      2. “blud”
      3. “red”
    • SRANDMEMBER key [count] --随机返回几个值,e.g.:SRANDMEMBER color 1,随机返回1) “blud”

  • 删除

    • SREM key member [member …] --删除,e.g.:SREM color red 返回1;
    • SPOP key --随机返回一个成员并删除,e.g.:SPOP color,返回"green";
  • 统计

SCARD key --获取集合个数,e.g.:SCARD color,返回2;

  • 判断集合是否存在某值

SISMEMBER key member --判定给定的值是否存在集合中,e.g.:SISMEMBER color blud ,返回1或者0;

  • 交集

SINTER key [key …] --多个集合交集(共有的集合),e.g.: SINTER color color1,返回red;

SINTERSTORE destination key [key …] --区交集并存储到目的地,e.g.:SINTERSTORE color_jj color color1,返回1

​ 查询 SMEMBERS color_jj,返回结果和上方结果一致

  • 并集

SUNION key [key …] --并集(合起来去重复),e.g.:SUNION color color1,返回:

  1. “blud”
  2. “red”
  3. “white”
  4. “organ”
  5. “green”

SUNIONSTORE destination key [key …] --获取并集并存储,e.g.:SUNIONSTORE color_bj color color1

​ 查询SMEMBERS color_bj,返回结果和上方结果一致

  • 差集

SDIFF key [key …] --差集(集合相互没有),e.g.: SDIFF color color1,返回:

  1. “green”
  2. “blud”

SDIFFSTORE destination key [key …] --获取差集并存储,e.g.:SDIFFSTORE color_cj color color1,返回2,

​ 查询查询SMEMBERS color_cj,返回结果和上方结果一致

11. sorted_set(有序集合)

常用于排行榜,如视频网站需要对用户上传视频做排行榜,或点赞数

List\SET\SORTED_SET的区别

  • 设值

ZADD key [XX] score member [score member …] --设值值,e.g.:ZADD vote 100 zhangsan 60 lisi 80 wangwu 1 zhaoliu,返回:(integer) 4;

XX: 仅仅更新存在的成员,不添加新成员

NX: 不更新存在的成员。只添加新成员。

INCR: 成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作

CH:修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。

  • 取值

    • ZRANGE key start stop [WITHSCORES] --返回成员【带分数的】,e.g.:zrange vote 0 -1 withscores,返回
    1. “zhaoliu”
    2. “1”
    3. “zhangsan”
    4. “3”
    5. “lisi”
    6. “60”
    7. “wangwu”
    8. “80”
    9. “zhangsan2”
    10. “100”
    11. “zhangsan\”
    12. “100”
    • ZSCORE key member --获取成员的分数,e.g.:ZSCORE vote zhangsan,返回:“3”

    • ZREVRANGE key start stop [WITHSCORES] --倒叙返回成员【带分数】,e.g.:ZREVRANGE vote 0 -1 withscores,返回:

      1. “zhangsan\”
      2. “100”
      3. “zhangsan2”
      4. “100”
      5. “wangwu”
      6. “80”
      7. “lisi”
      8. “60”
      9. “zhaoliu”
      10. “1”
    • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] --查询给定范围的成员,+inf标识无限大,-inf标识无限小,e.g.: ZRANGEBYSCORE vote 1 80 withscores,返回:

      1. “zhaoliu”
      2. “1”
      3. “lisi”
      4. “60”
      5. “wangwu”
      6. “80”
    • ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] --反向

  • 获取成员数

ZCARD key --获取成员数,e.g.:ZCARD vote,返回:(integer) 6;

ZCOUNT key min max --统计给定范围的成员数;e.g.: zcount vote 1 60,返回(integer) 2;

  • 排名

ZRANK key member --查看成员的名次(从0开始计算),从小到大;e.g.:ZRANK vote zhangsan, 返回:(integer) 1;

ZREVRANK key member --反向返回名次,从大到小;e.g.:ZREVRANK vote zhangsan,返回(integer) 4;

  • 删除

    ZREM key member [member …] --删除成员;e.g.: ZREM vote zhangsan,返回(integer) 1;

ZREMRANGEBYRANK key start stop --按照顺序删除指定范围的;eg:ZREMRANGEBYRANK vote 0 0,返回(integer) 1

ZREMRANGEBYSCORE key min max --删除给定分数范围的成员;e.g.: ZREMRANGEBYSCORE vote 0 60,返回(integer) 1

  • 增减分数

ZINCRBY key increment member – 给成员增(减)加分数,负数为减;e.g.:ZINCRBY vote 10 wangwu,返回"90";

  • 交集

ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] --求交集,默认是分数相加,eg::ZINTERSTORE votenew 2 vote vote1 weights 2 4 aggregate max;返回(integer) 3

  • 并集

ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] --求并集,

eg.与交集用法一致;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值