zoukankan      html  css  js  c++  java
  • redis

     redis数据类型

     redis支持五种数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset(sorted set:有序集合)

    linux-redis执行:
    docker exec -it redis-test /bin/bash
    redis-cli
     1、string(字符串)
    •  介绍

        string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value

        string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象

        string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB

    •  结构展示

    •  实例
    #设置指定key的值,没有时长 set key value
    set key-name1 value-param1
    #设置指定key的值,并将key的过期时间设为 seconds (以秒为单位) setex key seconds value
    setex key-name2 10 value-param2
    #设置指定key的值,并将key的过期时间设为 milliseconds (以秒为单位) psetex key milliseconds value
    psetex key-name3 1000 value-param3
    #获取指定key值 get key
    get key-name1
    #获取所有(一个或多个)给定key的值 mget key1 [key2...]
    mget key-name1 key-name2
    #将给定的key的 值设为value,并返回key的旧值(old value) getset key value
    getset key-name1 value-param4
    #删除一个key(del五种类型的数据都能删除) del key1 [key2...]
    del key-name1
    
    •  应用场景
      •  存储token字符串
     2、hash(哈希)
    •  介绍

        Redis hash 是一个键值(key=>value)对集合。

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

        Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

    •  结构展示

    •  实例
    #同时将多个 field-value (域-值)对设置到哈希表 key 中。 hset key field1 value1 [field2 value2...]
    hset employee no cd01 name gongyg
    #同时将多个 field-value (域-值)对设置到哈希表 key 中。 hmset key field1 value1 [field2 value2]
    hmset user id 1 name gumd
    #获取存储在哈希表中指定字段的值。 hget key field
    hget user id
    #获取所有给定字段的值 hmget key field1 [field2...]
    hmget user id name
    #获取在哈希表中指定 key 的所有字段和值 hgetall key
    hgetall user
    #获取所有哈希表中的字段 hkeys key
    hkeys user
    #获取哈希表中字段的数量 hlen key
    hlen user
    #获取哈希表中所有值。hvals key
    hvals user
    •  应用场景
      •  权限模块
     3、list(列表)
    •  介绍

        Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

        列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

    •  结构展示

    •  实例
    #在列表中添加一个或多个值【插入尾部】 rpush  key value1 [value2...]
    rpush employee gyg gmd
    #为已存在的列表添加值[必须是存在的key]【插入尾部】 rpushx key value
    rpushx employee gxy gxh
    #将一个值插入到已存在的列表头部[必须是存在的key] lpushx key value
    lpushx orgunit org3 org4
    #将一个或多个值插入到列表头部 lpush key1 value1 [value2...]
    lpush orgunit org1 org2
    #移出并获取列表的第一个元素 lpop key [count]
    lpop orgunit
    #移除列表的最后一个元素,返回值为移除的元素。 rpop key [count]
    rpop orgunit
    #移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。 blpop key1 [key2...] timeout
    blpop orgunit 1
    #移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。brpop key1 [key2...] timeout
    brpop orgunit 1
    #获取列表长度 llen key
    llen orgunit
    #通过索引获取列表中的元素 lindex key index
    lindex orgunit 0
    #获取列表指定范围内的元素 lrange key start stop
    lrange orgunit 0 2
    •  应用场景
      •  redis消息队列
     4、set(无序集合)
    •  介绍

        Redis 的 Set 是 string 类型的无序集合

        集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

        集合成员是唯一的,这就意味着集合中不能出现重复的数据

        集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

    •  结构展示

    •  实例
    #向集合添加一个或多个成员 sadd key member1 [member2...]
    sadd post post1 post2
    #获取集合的成员数 scard key
    scard post
    #返回集合中的所有成员 smembers key
    smembers post
    #移除集合中一个或多个成员 srem key member1 [member2...]
    srem post post1
    •  应用场景
      •  
     5、zset(sorted zset:有序集合)
    •  介绍

        Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员

        不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序

        有序集合的成员是唯一的,但分数(score)却可以重复

        集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

        集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

    •  结构展示

    •  实例
    #向有序集合添加一个或多个成员,或者更新已存在成员的分数 zadd key score1 member1 [score2 member2...]
    zadd trace 1 jd1 3 jd3 2 jd2 7 jd7 9 jd9 6 jd6 8 jd8 4 jd4 5 jd5
    #获取有序集合的成员数 zcard key
    zcard trace
    #通过索引区间返回有序集合指定区间内的成员 zrange key start stop
    zrange trace 0 2
    #通过分数返回有序集合指定区间内的成员 zrangebyscore key min max
    zrangebyscore trace 7 8
    #返回有序集合中指定成员的索引 zrank key member
    zrank trace jd4
    #返回有序集中指定区间内的成员,通过索引,分数从高到低 zrevrange key start stop
    zrevrange trace 1 4
    #返回有序集中指定分数区间内的成员,分数从高到低排序 zrevrangebyscore key max min
    zrevrangebyscore trace  6 4
    #返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 zrevrank  key member
    zrevrank trace jd5
    #返回有序集中,成员的分数值 zscore key member
    zscore trace jd8
    #移除有序集合中的一个或多个成员 zrem key member1 [member2...]
    zrem trace  jd8
    #移除有序集合中给定的分数区间的所有成员  zremangebyscore key start stop
    zremrangebyscore trace 4 5
    •  应用场景
      •  
  • 相关阅读:
    6.5 列出当前目录所有文件
    6.4 协程写文件
    6.3 写文件
    6.2 创建空目录
    6.1 os 获取文件状态
    5.13 json
    es2016
    短路原理
    fexbox
    vue @
  • 原文地址:https://www.cnblogs.com/gygtech/p/14870918.html
Copyright © 2011-2022 走看看