Redis的数据结构(一)

时间:2021-05-08 17:25:24
    本博客介绍了redis的一些全局命令、数据结构(string,hash)
一、全局命令
    1.查看所有键:keys *
    2.键总数:dbsize会回当前数据库的总数
    3.检查键是否存在:exists key如果键存在返回1,不存在返回0;
    4.删除键:del key del
        del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除。
    5.键过期:expire key seconds
        reids支持对键添加过期时间,当过期时间后,会自动删除键单位是“秒”
        ttl命令会返回返回键的剩余过期时间。
        大于等于0:键剩余的过期时间
        -1:键没设置过期时间
        -2:键不存在
        命令为:ttl key
    6.键的数据结构类型
        type key 如果键不存在则返回none
        type命令实际返回当前键的数据结构类型:它们分别是:string(字符串),hash(哈希) list(列表),set(集合),zset(有序集合)
二、数据结构
    1.字符串(string)
        字符串类型是redis最基础的数据结构,字符串类型的实际值可以是字符串(简单的字符串,复杂的字符串(json、xml),数字(整数,浮点数)甚至是二进制(图片、音频、视频)但是最大不能超过512M.
    1.1常用命令
        1)设置值:set key value[ex second][px second]
            set命令有几个选项:
            ex:seconds:为键设置秒级过期的时间。
            px:millseconds:为键设置毫秒级过期时间。
            nx:键必须不存在,才可以设置成功用于添加
            xx:与nx相反,键必须存在,才可以设置成功,用于更新。
        2)获取值:get key,如果键不存在会返回nil(空)
        3)批量设置值:mset key value[key vaue ...]
        4)批量获取值:mget key [key ...]
        批量操作可以有效的提高开发效率,
        如果n次get命令具体耗时如下:n次get时间=n次网络时间+n次命令时间;
        如果是mget具体耗时如下:n次get时间=1次网络时间+n次命令时间
        5)计数:incr key
            incr命令用来对值做自增操作,返回结果有三种情况:
            1.值不是整数,返回错误
            2.值是整数,返回自增后的结果
            3.键不存在 按照值为0自增,返回结果为1
        除了incr自增,还有decr(自减)、incrby(自增指定数字),decby(自减指定数字)
        incrbyfloat(自增浮点数)
    2.哈希
        哈希类型是指键值本身又是1个键值对结构
        2.1命令
            设置值:hset key field value
            获取值:hget key field
            删除field:hedl key field[field ...]
            计算field的个数:hlen key
            批量设置或获取field-value
            批量设置:hset key field value[field value ...]
            批量获取:hget key field value[field value ...]
            判断field是否存在:hexists key field
            获取所有field:hkeys key
            获取所有value:hvals key
            获取所有的field-value:hgetall key
下一篇会介绍集合和列表。


Redis的数据结构(一)