zoukankan      html  css  js  c++  java
  • 3 Redis 的常用五大数据类型

    2016-12-21 14:54:20


    该系列文章链接
    NoSQL 数据库简介
    Redis的安装及及一些杂项基础知识
    Redis 的常用五大数据类型(key,string,hash,list,set,zset)
    Redis 配置文件介绍
    Redis 持久化之RDB
    Redis 持久化之AOF
    Redis 主从复制
    Redis 事务
    Redis 发布与订阅

    Redis jedis 介绍


    Redis 相对其它类型的 NoSQL 数据库而言,更出彩的一点就是有更多的数据类型共使用者选择。

    学习任意一门技术,都应该从官网入手,Redis官网(https://redis.io/)Redis 中文网(http://www.redis.cn/)(华为建立的)
    本系列文章只讲常用命令,对于完整命令及信息可以翻阅 Redis 命令参考(http://redisdoc.com/index.html)
    既然 Redis 属于键值对类型数据库,那么接下来来看看独属于键的命令吧

    一.key  

    1.keys pattern:在本数据库中查找对应某种格式的键        

      找到本数据库中所有的键(* 代表1个或多个字符):keys *
           
           2. 找到 study 名称下所有的数据库:keys study:*
           
        3.exists key:判断 key 键是否存在
            查找 study:string:k2 和 study:string:k4 键值是否存在:
                
        4.move key db:将 key 键移到 db 数据库中
               
        5.type key:求出 key 键的类型
               
        6.expire key seconds:设置 key 的过期时间
               
        7.ttl key :查询 key 的过期时间
              
        二. string
        string 是字符串,key:value 键值对
        string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
    string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
    string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
        1.set/get/append string_name value
          incr/incrby decr/decrby
        若是 value 仅是数字,则可以用 incr/incrby decr/decrby 对 value 做加减操作
           

        2.strlen
        求字符串的长度
           

        3.getrange/setrange
        截取总串中的部分字符串
           
        4.setex/setnx
            setex:创建键值和过期时间
               
            setnx:set if not exists
               
        5.mset/mget/msetnx
            对多个 string 进行操作
           
            这张图是关于三个命令的操作,以及一些特殊情况
            mset key value [key]:若值已存在,则 value 覆盖旧值,如果不希望的话,则使用 msetnx
            msetnx:只会在所有给定 key 都不存在的情况下进行操作
        6.getset
            先取值再设置值
           

        三.hash
        Redis hash 是一个键值对集合。
        Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
        1.hset/hget/hmset/hmget/hgetall/hdel
           
        2.hlen
      同上
        3.hexists
      同上
        4.hincrby/hincrbyfloat
           
        5.hsetnx
           

        四.list

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

      它的底层实际是个链表
        1.lpush/rpush/lrange/lpop/rpop    
           
           
            lpush 入 list,可以把 list 当作栈来用
            rpush 入 lsit,可以把 list 当作队列来用
        2.llen/lindex
           
        3.lrem
            lrem key count value:删除 key 中重复的值
           
        4.ltrim
            ltrim key begin end
           
        5.rpoplpush
           
        6.lset key index value
          linsert key before/after value new_value
            这两个是在 list 中间插入的命令,效率很低,有兴趣的可以自己试试
        8.list 总结
        它是一个字符串链表,left、right都可以插入添加。
        如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。
        链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很差了。
        五.set

      Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

      set 是一个集合,既然是集合,那么就是无序,不可重复的。
            1.sadd/srem/smembers/sismember
               
            2.scard
               
           

            3.srandmember
               
            4.spop
               
            5.smove
                把 set1 中的元素 移到 set2 中
               
            6.数学集合类
            差集:sdiff
            并集:sunion
            交集:sinter


        六.zset:sorted set

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

      不同的是每个元素都会关联一个double类型的分数。

      redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
        1.zadd/zrem/zscore
           
        2.zcard/zcount
           
        3.zrange//zrangbyscore/zrank
           
            zrangebyscore 命令仔细使用一下
            http://redisdoc.com/sorted_set/zrangebyscore.html
        4.zrevrange/zrevrangebyscore/zrevrank
            这个自己去写写看
       

  • 相关阅读:
    简单算法之插入排序(二)
    简单算法之选择排序(一)
    使用iptables为docker容器动态添加端口映射
    CentOS7出现Unit iptables.service could not be found
    linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】
    centos6 安装docker
    Elasticsearch安装配置问题
    Elasticsearch技术解析与实战--shard&replica机制
    Elasticsearch聚合问题
    elasticsearch-head的使用
  • 原文地址:https://www.cnblogs.com/studyMoreRich/p/redis_datatype.html
Copyright © 2011-2022 走看看