• Redis_客户端命令和数据操作(三)


    切换数据库

    redis数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库,可以通过命令 select  库号 进行数据库的切换

    键命令

    keys

    查找键,参数⽀持正则表达式。语法如下:

    keys pattern

    exists

    判断键是否存在,如果存在返回1,不存在返回0。语法如下:

    exists key

    type

     查看key对应的value的数据类型,如果key不存在则返回none。语法如下:

    type key

    del

    删除指定key的数据,若key存在返1,若key不存在则返0。语法如下:

    del key

     expire&ttl

    设置数据时,如果忘了添加过期时间,我们可以使用expire为数据增加过期时间。语法如下:

    expire key seconds

    设置好过期时间后我们可以使用tll查看过期剩余时间,如果数据是永不过期则返 -1,如果已过期则返 -2,如果是待过期则返过期剩余时间。语法如下:

    ttl key

    数据结构

    • redis是key-value的数据结构,每条数据都是⼀个键值对
    • 键的类型是字符串
    • 注意:键不能重复

    • 值的类型分为五种:

      • 字符串string
      • 哈希hash
      • 列表list
      • 集合set
      • 有序集合zset

    string类型

    字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

    set&get

    使用 set 方法添加键值,如果添加的键已经存在则修改。语法如下:

    set key value

    使用 get 方法获取键的值,如果键不存在则返回nil。语法如下:

    get key

     

    mset&mget

     set和get一次只能设置一个或获取一个值,当我们想一次设置或获取多个是需要使用mset和mget。语法如下

    # mset设置多个值
    mset key1 value1 key2 value2 ...
    
    # mget获取多个值
    mget key1 key2 ...

    append

    向已存在的字符串中追加值,如果键不存在则创建。语法如下:

    append key value

    setex

    上面设置键值的方法过期时间默认是永久,如果想直接设置自动过期的键值需要使用setex方法。语法如下:

    setex key seconds value

    hash类型

    • hash类型⽤于存储对象,对象的结构为属性、值
    • 值的类型为string

    hset&hmset

    hset用于设置对象的属性和值,一次可以设置单个属性、值,也可以设置多个属性、值,hash类型的数据对象是可以追加和修改的,如果field不存在则追加,如果存在则修改。语法如下:

    # 设置key对象
    hset key field1 value1 [field2 value2 ...]
    
    # 修改已有属性的值
    hset key field1 newValue
    
    # 新增属性和值
    hset key newField value

    说明,在4.0版本之前,hset只能设置单个属性和值,在之后版本hset和hmset功能一致。

    hkeys&hget&hmget&hvals

    不同类型获取数据的方式不一样,如果没有用对应数据类型的方法获取数据,则会报错 (error) WRONGTYPE Operation against a key holding the wrong kind of value,对于hash类型的数据我们使用4中方法来分别获取对象的属性和值。语法如下:

    # 获取指定hash对象所有的属性
    hkeys key
    
    # 获取⼀个属性的值
    hget key field
    
    # 获取多个属性的值
    hmget key field1 field2 ...
    
    # 获取所有属性的值
    hvals key

    list类型

    • 列表的元素类型为string
    • 按照插⼊顺序排序
    • 可插入重复元素

    lpush&rpush

    lpush、rpush方法的作用是从左侧、从右侧插入元素。语法如下:

    # 从左侧插入数据。当插入第一个值后,第二个值插入到第一个值左侧,第三个值插入到第二个值左侧...
    lpush key element [element ...]
    
    # 从右侧插入数据。与左侧插入相反
    rpush key element [element ...]

    linsert key [ before | after ]

    在指定元素的前或后插⼊新元素,如果输入的现有元素不存在则会插入失败返-1。语法如下:

    linsert key BEFORE|AFTER 现有元素 插入元素

    lrange

    获取列表指定索引范围内的元素。语法如下:

    lrange key start stop
    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
    • 超出索引值不会报错

    lset

    修改列表指定索引位置的元素。语法如下:

    lset key index value
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

    • 超出索引值会报错

    lrem

    删除列表指定元素。语法如下:

    lrem key count value
    • 从列表中删除count次value元素
      • count > 0: 从左侧移除
      • count < 0: 从右侧移除
      • count = 0: 移除所有
    • 删除不存在的值不会报错

    set类型

    • ⽆序集合
    • 元素为string类型
    • 元素具有唯⼀性,不重复
    • 无修改操作

    sadd

    用于向集合中添加元素,若元素已存在则不会添加返回0。语法如下:

    sadd key member [member ...]

    smembers

    用于获取集合中的元素。语法如下:

    smembers key

    srem

    用于删除集合指定元素。语法如下:

    srem key member [member ...]

    zset类型

    • sorted set,有序集合
    • 元素为string类型
    • 元素具有唯⼀性,不重复
    • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
    • 无修改操作

    zadd

    用于向有序集合中添加元素。语法如下:

    zadd key [NX|XX] [CH] [INCR] score member [score member ...]

    zrange

    用于获取指定索引范围内的元素。语法如下:

    zrange key start stop [WITHSCORES]
    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

    zrangebyscore

    返回score值在min和max之间的元素。语法如下:

    zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

    zscore

    返回指定元素的score值。语法如下:

    zscore key member

    zrem

    删除指定元素。语法如下:

    zrem key member [member ...]

    zremrangebyscore

    删除权重在指定范围的元素。语法如下:

    zremrangebyscore key min max

     查看中文value

    redis的value存储中文后,获取值后显示16进制的字符串,比如:张三 ===>  xe5xbcxa0xe4xb8x89

     如果想要查看中文,使用 命令: redis-cli --raw  进入redis获取值即可。

    更多命令介绍,请查看https://www.cnblogs.com/progor/p/8540246.html

  • 相关阅读:
    ajax
    前端学数据库之子查询
    读书笔记:《HTML5开发手册》Web表单
    阅读《编写可读代码的艺术》笔记
    windows环境下sublime的nodejs插件详细安装图解
    有关css3的一些问题
    前面的话
    gulp思考
    10种排序算法分析
    ajax异步请求
  • 原文地址:https://www.cnblogs.com/testlearn/p/13997301.html
Copyright © 2020-2023  润新知