redis常用命令

发布于:2024-10-13 ⋅ 阅读:(130) ⋅ 点赞:(0)

一、后台启动

  • 修改redis.conf配置文件,将daemonize设置为yes

    • 命令:vi redis.conf,注:vi后接的是路径/文件名
    • 修改,完成后:wq退出
  • 启动redis(redis-server在/usr/local/bin

    • 命令:redis-server redis.conf,注:redis-server后接的是redis.conf的目录地址
    • 查看运行状态:ps -ef | grep redis
  • 通过客户端连接redis:redis-cli
    在这里插入图片描述

  • redis退出

    • 单实例关闭:redis-cli shutdown
    • 多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown

二、Redis键(Key)

  • keys *:查看当前库所有key (匹配:keys *1)
  • exists key:判断某个key是否存在
  • type key :查看你的key是什么类型
  • del key :删除指定的key数据
  • unlink key :根据value选择非阻塞删除
  • expire key 10 10秒钟:为给定的key设置过期时间
  • ttl key :查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • select:命令切换数据库
  • dbsize:查看当前数据库的key的数量
  • flushdb:清空当前库
  • flushall:通杀全部库

三、String、list、set、Hash、有序集合Zset

String

  • set <key><value>:添加键值对
  • get <key>:查询对应键值
  • append <key><value>:将给定的 追加到原值的末尾
  • strlen <key>:获得值的长度
  • setnx <key><value>:只有在 key 不存在时 设置 key 的值
  • incr/decr <key>
    • 将 key 中储存的数字值增/减1
    • 只能对数字值操作,如果为空,新增值为1/-1
  • incrby / decrby <key><步长>:将 key 中储存的数字值增减。自定义步长。
  • mset <key1><value1><key2><value2> ..... :同时设置一个或多个 key-value对
  • mget <key1><key2><key3> .....:同时获取一个或多个 value
  • msetnx <key1><value1><key2><value2> ..... :同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
  • getrange <key><起始位置><结束位置>:获得值的范围,类似java中的substring,前包,后包
  • setrange <key><起始位置><value>用 <value> :覆写所储存的字符串值,从<起始位置>开始(索引从0开始)。
  • setex <key><过期时间><value>:设置键值的同时,设置过期时间,单位秒。
  • getset <key><value>:以新换旧,设置了新值同时获得旧值。

List

  • lpush/rpush <key><value1><value2><value3> .... :从左边/右边插入一个或多个值。
  • lpop/rpop <key>:从左边/右边吐出一个值。值在键在,值亡键亡。
  • rpoplpush <key1><key2>:从列表右边吐出一个值,插到列表左边。
  • lrange <key><start><stop>:按照索引下标获得元素(从左到右)
  • lrange mylist 0 -1 :0左边第一个,-1右边第一个,(0-1表示获取所有)
  • lindex <key><index>:按照索引下标获得元素(从左到右)
  • llen <key>:获得列表长度
  • linsert <key> before <value><newvalue>:在的后面插入插入值
  • lrem <key><n><value>:从左边删除n个value(从左到右)
  • lset<key><index><value>:将列表key下标为index的值替换成value

Set

  • sadd <key><value1><value2> ..... :将一个或多个 member 元素加入到集合 key 中,已经存在的
  • member :元素将被忽略
  • smembers <key>:取出该集合的所有值。
  • sismember <key><value>:判断集合是否为含有该值,有1,没有
  • scard<key>:返回该集合的元素个数。
  • srem <key><value1><value2> .... :删除集合中的某个元素。
  • spop <key>:随机从该集合中吐出一个值。
  • srandmember <key><n>:随机从该集合中取出n个值。不会从集合中删除 。
  • smove <source><destination>:value把集合中一个值从一个集合移动到另一个集合
  • sinter <key1><key2>:返回两个集合的交集元素。
  • sunion <key1><key2>:返回两个集合的并集元素。
  • sdiff <key1><key2>:返回两个集合的差集元素(key1中的,不包含key2中的)

Hash

  • hset <key><field><value>:给集合中的 键赋值
  • hget <key1><field>:从集合取出 value
  • hmset <key1><field1><value1><field2><value2>... :批量设置hash的值
  • hexists<key1><field>:查看哈希表 key 中,给定域 field 是否存在。
  • hkeys <key>:列出该hash集合的所有field
  • hvals <key>:列出该hash集合的所有value
  • hincrby <key><field><increment>:为哈希表 key 中的域 field 的值加上增量 1 -1
  • hsetnx <key><field><value>:将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 .

Szet
不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。

  • zadd <key><score1><value1><score2><value2>…:将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
  • zrange <key><start><stop> :[WITHSCORES] 返回有序集 key 中,下标在 之间的元素带WITHSCORES,可以让分数一起和值返回到结果集。
  • zrangebyscore key minmax [withscores] [limit offset count]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
  • zrevrangebyscore key maxmin [withscores] [limit offset count] :同上,改为从大到小排列。
  • zincrby <key><increment><value> :为元素的score加上增量
  • zrem <key><value>:删除该集合下,指定值的元素
  • zcount <key><min><max>:统计该集合,分数区间内的元素个数
  • zrank <key><value>:返回该值在集合中的排名,从0开始。

四、配置文件

bind

  • 默认情况bind=127.0.0.1只能接受本机的访问请求
  • 不写的情况下,无限制接受任何ip地址的访问
  • 生产环境肯定要写你应用服务器的地址;服务器是需要远程访问的,所以需要将其注释掉

protected-mode

  • 将本机访问保护模式设置no

timeout

  • 一个空闲的客户端维持多少秒会关闭,0表示关闭该功能。即永不关闭。

daemonize

  • 是否为后台进程,设置为yes

databases 16

  • 设定库的数量 默认16,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id

maxclients

  • 设置redis同时可以与多少个客户端进行连接。
  • 默认情况下为10000个客户端。
  • 如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应。

maxmemory

  • 建议必须设置,否则,将内存占满,造成服务器宕机
  • 设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。

五、事务的三个命令Multi,Exec,discard

  • 从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,直到输入Exec后,Redis会将之前的命令队列中的命令依次执行。
  • 组队的过程中可以通过discard来放弃组队。
    在这里插入图片描述

六、Redis的主从复制

  • slave-priority 10设置从机的优先级,值越小,优先级越高,用于选举主机时使用。默认100,在后面的哨兵模式中会有提及

  • info replication打印主从复制的相关信息

  • slaveof <主机ip><port>成为某个实例的从服务器(配置从服务器)

  • 配置哨兵,填写内容

    • 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错
    • sentinel monitor mymaster 127.0.0.1 6379 1其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。
  • 启动哨兵/usr/local/bin

    • 执行redis-sentinel /myredis/sentinel.conf

七、集群

  • 合体cd /opt/redis-6.2.1/src(安装目录)在此目录下执行下面命令

    redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379
     192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389
      192.168.11.101:6390 192.168.11.101:6391
    

    注:此处不要用127.0.0.1, 请用真实IP地址

    • replicas 1 采用最简单的方式配置集群,一台主机,一台从机,正好三组。

-c 采用集群策略连接,设置数据会自动切换到相应的写主机

在这里插入图片描述

通过 cluster nodes 命令查看集群信息

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到