zoukankan      html  css  js  c++  java
  • redis数据类型

    redis是什么?

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

    redis提供了5中数据结构,理解每种数据结构的特点对于redis开发运维非常重要

    数据类型
    1.string(字符串)
    2.hash(哈希,类似java里的Map)
    3.list(列表)
    4.set(集合)
    5.zset(sorted set:有序集合)

    String(字符串)

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

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

    string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

    字符串类型实际上可以是简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频)

    String常用命令:

    set key value 设置指定 key 的值

    get key 获取指定key的值

    getset key newvalue 获取指定key的旧值,并设置新值为newvalue

    incr key 指定key的值加1 (适用于与倒计时)

    decr 指定key的值减1(适用于与倒计时)

    setnx key vallue 只有在 key 不存在时设置 key 的值(用于分布式锁)

    Hash(哈希)
    Redis hash 是一个键值对集合。
    Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
    类似Java里面的Map<String,Object>

    常用命令

    HSET key field value 命令不区分插入和更新操作,当执行插入操作时 HSET 命令返回1,当执行更新操作时返回0。

    HGET key field  从hash表key中获取field的值

    HGETALL key 获取所有字段值

    HDEL key field 删除字段,可以删除一个或者多个字段

    HINCRBY key field increment  为哈希表 key 中的指定字段的整数值加上增量 increment 

    List(列表)

    Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)
    它的底层实际是个双向链表

    常用命令

    1. LPUSH key value 向列表左边增加元素
    2. RPUSH key value 向列表右边增加元素
    3. LRANGE key start stop 查看指定索引范围内的元素 ,索引从0开始,索引可以是负数,如:“-1”代表最后边的一个元素。
    4. LPOP 移除链表第一个元素
    5. RPOP 移除链表最后一个元素
    6. LLEN 获取列表中元素的个数

    Set(集合)

    set 类型即集合类型,其中的数据是不重复且没有顺序。集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型的 Redis 内部是使用值为空的散列表实现,所有这些操作的时间复杂度都为0(1)。 Redis还提供了多个集合之间的交集、并集、差集的运算。
    1. SADD key member1 [member2]  向集合添加一个或者多个元素
    2. SREM key member [member ...] 删除一个或者多个元素
    3. SMEMBERS key 获得集合中的所有元素
    4. SISMEMBER key member

    zset(sorted set:有序集合)

    在集合类型的基础上,有序集合类型为集合中的每个元素都关联一个分数,这使得我们不仅可以完成插入、删除和判断元素是否存在在集合中,还能够获得分数最高或最低的前 N 个元素、获取指定分数范围内的元素等与分数有关的操作。

    在某些方面有序集合和列表类型有些相似:

    • 二者都是有序的。
    • 二者都可以获得某一范围的元素。

    但是,二者有着很大区别:

    • 列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会变慢。
    • 有序集合类型使用散列表实现,所有即使读取位于中间部分的数据也很快。
    • 列表中不能简单的调整某个元素的位置,但是有序集合可以(通过更改分数实现)
    • 有序集合要比列表类型更耗内存。
    常用命令:
    1. ZADD key score member [score member ...] 添加元素
    2. ZRANGE key start stop 获得排名在某范围内的元素列表
    3. ZSCORE key member 获取元素的分数
    4. ZREM key member [member ...] 删除key中一个或者多个成员

    Redis 键(key)
    1. keys *
    2. exists key的名字,判断某个key是否存在
    3. move key db --->将当前数据库key移动到给定数据库中
    4. expire key 秒钟:为给定的key设置过期时间
    5. ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期,即已被删除
    6. type key 查看你的key是什么类型

    info replication 查看服务器信息

     参考:

    https://www.zhihu.com/search?type=content&q=redis%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B

    https://blog.csdn.net/qq_41654985/article/details/82390875

  • 相关阅读:
    操作系统__kali(1)基本操作指令,以及常用工具
    Log4net入门(回滚日志文件篇)
    Log4net入门(日志文件篇)
    Log4net入门(控制台篇)
    openwrt控制GPIO
    openwrt DTS介绍
    openwrt bin文件解析
    STM32(三十)蓝牙通信
    openwrt的led configuration
    uci文件生成脚本函数说明
  • 原文地址:https://www.cnblogs.com/kiwi-deng/p/11201885.html
Copyright © 2011-2022 走看看