打好Redis的基础需要学习哪些常用命令

60次阅读
没有评论

共计 4565 个字符,预计需要花费 12 分钟才能阅读完成。

打好 Redis 的基础需要学习哪些常用命令,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、背景介绍

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

二、Redis 常用命令

1、工具命令

1)、redis-server 

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

#指定配置文件启动服务  redis-server redis.conf # 指定端口启动服务  redis-server --port 6379

2)、redis-cli

redis 客户端工具

#使用 socket 连接 redis 服务器  redis-cli -s /tmp/redis.sock # 不使用 socket 连接 redis 服务器  redis-cli

3)、redis-benchmark

redis 的性能测试工具

#使用默认参数测试  redis-benchmark # 自定义参数测试  redis-benchmark -n 1000000 --csv

4)、redis-check-dump

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

# redis-check-dump dump.rdb

5)、redis-check-aof

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

# 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:

127.0.0.1:6379  get number  20  127.0.0.1:6379  incr number (integer) 21 127.0.0.1:6379  decr number (integer) 20 127.0.0.1:6379  incrby number 5 (integer) 25 127.0.0.1:6379  append number hello (integer) 7 127.0.0.1:6379  strlen number (integer) 7 127.0.0.1:6379  setnx number hello (integer) 0 127.0.0.1:6379  getrange number 0 5  25hell

2)、LISTS

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

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

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

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

llen 获取列表长度

Demo:

127.0.0.1:6379  lpush mylists apple orange pear (integer) 3 127.0.0.1:6379  llen mylists (integer) 3 127.0.0.1:6379  lrange mylists 0 -1 1)  pear  2)  orange  3)  apple  127.0.0.1:6379  rpush mylists banana (integer) 4 127.0.0.1:6379  lrange mylists 0 -1 1)  pear  2)  orange  3)  apple  4)  banana  127.0.0.1:6379  lpop mylists  pear  127.0.0.1:6379  lset mylists 0 four OK 127.0.0.1:6379  lrange mylists 0 -1 1)  four  2)  apple  3)  banana

3)、SETS

sadd 向集合中添加值

smembers 查看集合中的值

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

sunion 返回两个集合中的并集

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

sinter 返回两个集合中的交集

scard 返回集合中元素个数

srem 删除集合中指定值

Demo:

127.0.0.1:6379  sadd myset one two three (integer) 3 127.0.0.1:6379  sadd myset1 two redis mysql (integer) 3 127.0.0.1:6379  smembers myset 1)  three  2)  two  3)  one  127.0.0.1:6379  smembers myset1 1)  two  2)  mysql  3)  redis  127.0.0.1:6379  sdiff myset myset1 1)  three  2)  one  127.0.0.1:6379  sinter myset myset1 1)  two  127.0.0.1:6379  sunion myset myset1 1)  two  2)  three  3)  mysql  4)  one  5)  redis  127.0.0.1:6379  scard myset (integer) 3 127.0.0.1:6379  sismember myset redis (integer) 0 127.0.0.1:6379  srem myset two (integer) 1 127.0.0.1:6379  smembers myset 1)  three  2)  one

4)、SORTED SETS

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

zrange 取出指定顺序的元素

zscore 返回集合中的顺序

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

zrem 删除集合中指定元素

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

Demo:

127.0.0.1:6379  zadd sset 1 one 2 two 3 three (integer) 3 127.0.0.1:6379  zadd sset 3 three (integer) 0 127.0.0.1:6379  zrange sset 0 -1 withscores 1)  one  2)  1  3)  two  4)  2  5)  three  6)  3  127.0.0.1:6379  zrank sset one (integer) 0 127.0.0.1:6379  zrank sset two (integer) 1 127.0.0.1:6379  zcard sset (integer) 3 127.0.0.1:6379  zincrby sset 2 two  4  127.0.0.1:6379  zrange sset 0 -1 withscores 1)  one  2)  1  3)  three  4)  3  5)  two  6)  4  127.0.0.1:6379  zrem sset three (integer) 1 127.0.0.1:6379  zrange sset 0 -1 withscores 1)  one  2)  1  3)  two  4)  4

5)、HASHES

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

hget 获取 hash 域中指定的 key 值

hmset 同时批量设置多个域

hincrby 指定 hash 域加上给定的值

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

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

Demo:

127.0.0.1:6379  hset user name jack (integer) 1 127.0.0.1:6379  hget user name  jack  127.0.0.1:6379  hsetnx user name jack (integer) 0 127.0.0.1:6379  hmset user1 name bob sex man age 11 OK 127.0.0.1:6379  hmget user1 name sex age 1)  bob  2)  man  3)  11  127.0.0.1:6379  hexists user1 score (integer) 0 127.0.0.1:6379  hlen user1 (integer) 3 127.0.0.1:6379  hincrby user1 age 5 (integer) 16 127.0.0.1:6379  hkeys user1 1)  name  2)  sex  3)  age  127.0.0.1:6379  hdel user1 sex (integer) 1 127.0.0.1:6379  hgetall user1 1)  name  2)  bob  3)  age  4)  16

4、其他命令

1)、事务

multi 开启一个事务

exec 执行事务

discard 撤销事务

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

Demo:

127.0.0.1:6379  watch  csdn  OK 127.0.0.1:6379  multi OK 127.0.0.1:6379  set csdn blob QUEUED 127.0.0.1:6379  get csdn QUEUED 127.0.0.1:6379  exec 1) OK 2)  blob

2)、复制

info replication 获取复制信息

slaveof 建立复制关系

sync 同步

3)、订阅发布

subscribe 订阅一个或多个频道

publish 向某一频道发送信息

关于打好 Redis 的基础需要学习哪些常用命令问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计4565字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)