• Redis学习(五)常用命令整理


    1.启动与连接

    启动:

    redis-server /usr/local/soft/redis-6.0.9/redis.conf

    连接:

    redis-cli -h 服务器地址 -p 端口号 -a 密码

    连接后输入密码:

    auth 密码

    查看基本信息:

    info


    2.数据库

    切换数据库:

    select 0

    清空当前数据库:

    flushdb

    清空所有数据库:

    flushall


    3.基本命令

    查看版本:

    info server

    存值:
    (EX 10-指定10s后过期;PX 10-指定10ms后过期;NX-只在不存在时存值;XX-只在存在时存值 )

    set key1 123 [EX 10 | PX 10] [NX | XX]

    取值:

    get key1

    模糊查询key:

    keys access_token*

    获取当前db的key总数(生产环境数据量大,慎用):

    dbsize

    查看key是否存在:

    exists key1

    删除key,支持删除多个:

    del key1 key2

    重命名key:

    rename key1 key2

    查看key的值类型:

    type key1


    4.String类型命令

    Redis一共9种数据类型:StringListSetZsetHashBigmapHyperloglogGeoStream

    存储类型: 可以用来存储intfloatString

    获取指定范围的字符:

    getrange key1 0 1

    获取值长度:

    strlen key1

    字符串追加内容:

    append key1 good

    设置多个值(批量操作,原子性):

    mset key1 111 key2 222

    获取多个值:

    mget key1 key2

    设置值,如果key存在,则不成功(set not exist):

    (基于此可实现分布式锁,用 del key 释放锁)

    setnx key1 123

    整数值递增(值不存在会得到1):

    incr key1

    整数值增加100:

    incrby key1 100

    整数递减(值不存在会得到-1):

    decr key1

    整数减少100:

    decrby key1 100

    浮点数增加1.1:

    incrbyfloat key1 1.1

    浮点数减少1.1:

    incrbyfloat key1 -1.1


    5.List类型命令

    存储类型: 存储有序的字符串(从左到右),元素可以重复。最大存储数量 2^32-1(40亿左右)。

    在左边增加元素a、b:

    lpush list1 a b

    在右边增加元素a、b:

    rpush list1 a b

    从左边弹出一个元素:

    lpop list1

    从右边弹出一个元素:

    rpop list1

    查询第一个值:

    lindex list1 0

    查询所有值:

    lrange list1 0 -1


    6.Set类型命令

    存储类型: Set 存储 String 类型的无序集合,最大存储数量 2^32-1(40亿左右)。

    添加一个或多个元素:

    sadd myset a b c

    获取所有元素:

    smembers myset

    统计元素个数:

    scard myset

    随机查询一个元素:

    srandmember myset

    随机弹出一个元素:

    spop myset

    移除一个或多个元素:

    srem myset b c

    查看元素是否存在:

    sismember myset a


    7.ZSet类型命令

    存储类型: Sorted set 存储有序的元素。每个元素有个score,按照 score 从小到大排名。score 相同时,按照 key 的ASCII码排序。

    添加元素:

    zadd myzset 10 java 20 php 30 python

    获取全部元素:

    zrange myzset 0 -1 withscores

    zrevrange myzset 0 -1 withscores

    根据分值区间获取元素:

    zrangebyscore myset 20 30

    移除元素,也可以根据 score rank 删除:

    zrem myzset java php

    统计元素个数:

    zcard myzset

    分值增加5:

    zincrby myzset 5 python

    根据分值统计个数:

    zcount myzset 20 60

    获取元素 rank:

    zrank myzset python

    获取元素 score:

    zscore myzset python


    8.Hash类型命令

    存储类型: Hash 用来存储多个无序的键值对。最大存储数量 2^32-1(40亿左右)。

    插入一个key:

    hset h1 a 1

    插入多个key:

    hmset h1 b 2 c 3 d 4

    获取一个或多个key:

    hget h1 a b c

    获取所有key名:

    hkeys h1

    获取所有key值:

    hvals h1

    获取所有key名和key值:

    hgetall h1

    删除key:

    hdel h1 a

    获取对象h1中key的数量:

    hlen h1


    9.cluster 相关命令

    1)集群

    打印集群的信息:

    cluster info

    列出集群当前已知的所有结点(node)以及结点的相关信息:

    cluster nodes

    2)结点

    将 ip 和 port 所指定的结点添加到集群当中,让它成为集群的一份子:

    cluster meet

    从集群中移除 node_id 指定的结点(保证空槽道):

    custer forget

    将当前结点设置为 node_id 指定结点的从结点:

    cluster replicate

    将结点的配置文件保存到硬盘里面:

    cluster saveconfig

    3)槽(slot)

    将一个或多个槽(slot)指派(assign)给当前结点:

    cluster addslots [slot …]

    移除一个或多个槽对当前结点的指派:

    cluster delslots [slot …]

    移除指派给当前结点的所有槽,让当前结点变成一个没有指派任何槽的结点:

    cluster flushslots

    将槽 slot 指派给 node_id 指定的结点,如果槽已经指派给另一个结点,那么先让另一个结点删除该槽,然后再进行指派:

    cluster setslot node

    将本结点的槽 slot 迁移到 node_id 指定的结点中:

    cluster setslot migrating

    从 node_id 指定的结点中导入槽 slot 到本节点:

    cluster setslot importing

    取消对槽 slot 的导入(import)或者迁移(migrate):

    cluster setslot stable

    4)键

    计算键 key 应该被放置在哪个槽上:

    cluster keyslot

    返回槽 slot 目前包含的键值对数量:

    cluster countkeysinslot

    返回 count 个 slot 槽中的键:

    cluster getkeysinslot


    10.其他类型命令

    其他详细命令,参考:https://blog.csdn.net/qq_33204709/article/details/122320481

    整理完毕,完结撒花~

  • 相关阅读:
    Push-Relabel算法相关阅读
    Redis系列24:Redis使用规范
    精分合并抑郁康复经历分享:如何从死亡边缘回到生的海洋?
    深度学习-第T5周——运动鞋品牌识别
    java(ArrayList、Vector、LinkedList底层结构和源码分析)
    interview6-jvm篇
    rauth,一个强大的Python库!
    Es的核心概念
    综述----知识蒸馏
    k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离
  • 原文地址:https://blog.csdn.net/qq_33204709/article/details/127798668