zoukankan      html  css  js  c++  java
  • Redis入门及常用命令学习

    Redis简介

    Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
    Redis 与其他 key - value 缓存产品有以下三个特点:

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。

    下载安装Redis5.0.X

    以Ubuntu20.4为例

    运行安装命令

    sudo apt-get install redis-server
    

    Redis配置文件

    以Ubuntu20.4为例

    sudo vim /etc/redis/redis.conf
    

    Redis操作相关命令

    部分命令可直接通过键盘Tab键补全

    # 卸载命令
    sudo apt-get purge --auto-remove redis-server 
    
    # 关闭命令
    sudo service redis-server stop
    
    # 开启命令
    sudo service redis-server start
    
    # 重启命令
    sudo service redis-server restart
    
    # Redis命令行客户端
    redis-cli
    
    # Redis服务器
    redis-server
    
    # Redis性能测试工具
    redis-benchmark
    
    # AOF文件修复工具
    redis-check-aof
    
    # RDB文件检查工具
    redis-check-rdb
    

    Redis五种数据类型

    类型 描述
    string 字符串类型
    hash 散列类型
    list 列表类型
    set 集合类型
    zset 有序集合类型

    Redis通用命令

    1. 获取符合规则的键名列表
    keys [pattern] # pattern支持glob风格通配符格式
    
    符号 含义
    ? 匹配一个字符
    * 匹配任意个字符
    [] 匹配范围内字符,如a[b-d]可以匹配“ab”、“ac”、“ad”
    \ 匹配需要转义字符
    1. 判断键是否存在
    exists key # 如果键存在则返回整型1,反之返回0
    
    1. 删除键
    del key [key ...] # 支持批量删除,返回值为删除键的个数
    
    1. 获取键值的数据类型
    type key
    
    1. 获取键的总数
    dbsize
    
    1. 设置键过期时间
    expire key seconds # key在seconds秒后过期
    
    1. 查询当前键的剩余时间
    ttl key # 查询key在多少秒后过期
    # 如果返回值为-1,则代表key存在且没有设置过期时间
    # 如果返回值为-2,则代表key已不存在
    
    1. 删除键的过期时间
    persist key
    
    1. 清空所有数据库数据
    flushall
    
    1. 清空当前数据库数据
    flushdb
    
    1. 切换到指定数据库
    select index # 默认使用0号数据库
    

    Redis数据类型入门

    String(字符串类型)常用命令

    string可以存储任何形式的字符串,包括二进制数据。

    1. 获取键对应的值
    get key # 当键不存在时会返回空(nil)
    
    1. 设置键值对
    set key value
    
    setnx key value # 键不存在时才设置
    
    set key value xx # 键存在时才设置(属更新操作)
    
    1. 递增/递减数字
    incr key # 使当前键自增1,并返回自增后的值
    
    decr key # 使当前键自减1,并返回自减后的值
    
    incrby key num # 使当前键自增num
    
    decrby key num # 使当前键自减num
    
    1. 获取字符串长度
    strlen key # 返回键的长度,不存在则返回0
    
    1. 向尾部追加值
    append key value # 如果键不存在则设置新的键值,返回值为总长度
    
    1. 批量获取/设置多个键值
    mget key [key ...] # 获取
    
    mset key1 value1 key2 value2 ... # 新增
    
    1. 获取字符串指定下标的值
    getrange key start end
    
    1. 设置字符串指定下标的值
    setrange key index value
    

    Hash(散列类型)常用命令

    hash 是一个 string 类型的 field(字段)和 value(值)的映射表,适合用于存储对象。

    1. 获取散列属性对应的值
    # 获取单个属性对应的值
    hget key field
    
    # 获取多个属性对应的值
    hmget key field [field ...]
    
    # 获取散列所有属性与值
    hgetall key
    
    # 获取散列所以属性对应的值
    hvals key
    
    # 获取散列键对应的所有属性
    hkeys key
    
    1. 设置散列
    # 设置单个散列
    hset key field value
    
    # 设置散列属性,如果属性已存在,则设置失败
    hsetnx key field value
    
    # 设置散列多个属性值
    hmset key field1 value1 field2 value2 ...
    
    1. 删除散列属性
    hdel key field
    
    1. 判断散列的键是否存在某一属性
    hexists key value
    
    1. 获取散列属性数量
    hlen key
    

    List(列表类型)常用命令

    1. 设置列表
    # 从列表右侧插入值
    rpush key value1 value2 ...
    
    # 从列表左侧插入值
    lpush key value1 value2 ...
    
    # 在列表指定值的前/后插入新值
    linsert key before|after value newValue
    
    1. 删除列表指定值
    # 从列表左侧删除一个元素
    lpop key
    
    # 从列表右侧删除一个元素
    rpop key
    
    # 根据count值删除所有相同值的元素
    # (1)count>0,从左到右,删除最多count个value相等的项
    # (2)count<0,从右到左,删除最多Math.abs(count)个value相等的项
    # (3)count=0,删除所有value相等的项
    lrem key count value
    
    # 根据索引范围修改列表
    ltrim key start end
    
    1. 获取列表值
    # 获取列表指定索引范围内所有元素
    # start与end为闭区间
    lrange key start end
    
    # 获取列表指定索引的元素
    lindex key index
    
    # 获取列表长度
    llen key
    
    1. 修改列表中的值
    # 设置列表指定索引对应的值为newValue
    lset key index newValue
    

    Set(集合类型)常用命令

    1. 设置集合
    # 向集合键中添加元素,如果元素存在,则添加失败
    sadd key element
    
    1. 删除集合中指定元素
    # 删除集合中指定的元素
    srem key element
    
    # 从集合中随机删除count个元素
    # 移除后会返回移除的元素
    spop key [count]
    
    1. 获取集合指定值
    # 获取集合的数量
    scard key
    
    # 判断元素是否存在
    sismember key element
    
    # 从集合中随机获取count个元素
    srandmember key [count]
    
    1. 集合间的交差并操作
    # 获取集合间的差集
    sdiff key1 key2 ...
    
    # 获取集合间的交集
    sinter key1 key2 ...
    
    # 获取集合间的并集
    sunion key1 key2 ...
    

    Zset(有序集合类型)常用命令

    1. 设置有序集合
    zadd key score element
    
    1. 删除有序集合中指定元素
    zrem key element
    
    # 删除指定排名内的升序元素
    zremrangebyrank key start end
    
    # 删除指定分数内的升序元素
    zremrangebyscore key minScore maxScore
    
    1. 获取有序集合指定值
    # 获取元素的分数
    zscore key element
    
    # 获取元素总个数
    zcard key
    
    # 按照升序排序获取指定索引范围内的元素
    # WITHSCORES属性控制是否输出分数值
    zrange key start end [WITHSCORES]
    
    # 按照升序排序获取指定分数范围内的元素
    zrangebyscore key minScore maxScore [WITHSCORES]
    
    # 获取有序集合内在指定分数范围内的个数
    zcount key minScore maxScore
    
  • 相关阅读:
    Luogu P1247 取火柴游戏
    Luogu P2148 [SDOI2009]E&D
    Luogu P3305 [SDOI2013]费用流 二分 网络流
    NTT学习笔记
    Luogu P4015 运输问题
    Lucas定理学习笔记(没有ex_lucas)
    Luogu P2613 【模板】有理数取余
    欧拉定理与扩展欧拉定理学习笔记
    BSGS与exBSGS学习笔记
    Luogu P3868 [TJOI2009]猜数字
  • 原文地址:https://www.cnblogs.com/kangyz/p/15706759.html
Copyright © 2011-2022 走看看