zoukankan      html  css  js  c++  java
  • redis 基本指令以及数据类型

    redis的数据类型:

    String(字符串)

    string是redis最基本的类型,一个key对应一个value

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

    一个redis中字符串value最多可以是512M

    Hash(哈希,类似java里的Map)

    redis hash 是一个键值对集合

    redis hash 是一个string类型的field 和 value 的映射表,hash特别适合用于存储对象,类似Java里面的MAP<String,Object>

    List (列表)

    redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或尾部,它的底层实际是个链表

    Set (集合)

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

    Zset (sorted set:有序集合)

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

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

    redis正是通过分数来为集合中的成员进行从小到大的 排序。zset的成员是唯一的,但分数(score)却可以重复

    redis常见数据类型操作命令:http://redisdoc.com/

    redis的基本指令

    redis是单进程的默认16个数据库,类似于数组,下标从0开始,一直到15,初始默认使用0号数据库。

     select命令 可以切换数据库:

     数据库之间不互通,例如我在0号库设置了一个键值对,切换到其他库之后并不适用:

     Dbsize 查看当前数据库的key的数量:

    keys * 查看所有的key:

    keys k? 查看所有以k为开头并且键名长度为2的key:(一个?占一个位置

     

    如果库中有键名为k22的key,则使用keys k?则找不到这条,需要使用k??:

     flushdb:清空当前库

    fflushall:通杀全部库

     统一的密码管理,16个库都是同样密码,要么都能进去,要么都进不去。

    redis索引都是从0开始

    redis 键(key)的基本操作指令:

    keys * (查看当前库中所有的键)

    exists 键名  (判断某个key是否存在),返回1表示key存在,返回0表示key不存在

     move key db (将某个key移动到某个db)

    ttl key 查看还有多少秒过期,-1 表示永不过期,-2表示已过期

     expire key 秒钟: 为给定的key设置过期时间

    我们给k3设置10秒的存活时间,10秒过去后k3将会被自动删除

    type key 查看你的key是什么类型

     del key 删除一个key

     persist key 移除key的过期时间,key将长久保持

     redis string 基本操作指令:

    redis string 是单键单值的

    set/get/del/append/strlen  (设置/获取值/删除/给value尾部增加值/获取value长度)

     Incr/decr/incrby/decrby  (自增/自减/相加/相减)一定要是数字才能进行加减

     

     

     

    getrange/setrange (获取指定区间范围内的值,类似between ... and 的关系/设置指定区间范围内的值,格式是setrange key  值 value) 0到-1表示全部

     

    setex(set with expire)键秒值(设置key的时候顺便设置key的存活时间)/setnx(set if not exist,如果key不存在就创建,否则就不创建)

     

    mset/mget/msetnx(一次创建多个键值对/一次获取多个值/如果每个key都不存在,则创建,否则不创建)

    getset(先get再set)

     redis 列表 基本操作指令:

    单键多值

    lpush/rpush/lrange (左添加 每一个value都添加到上一个value的左边 /右添加 每一个value都添加到上一个value的右边 /读取)

     

     lpop/rpop (从左到右依次把value弹出/从右到左依次把value弹出)

     

    lindex,按照索引下标获得元素

     llen 获得key对应的value的个数:

     lrem key :

     ltrim  key  开始index   结束index ,截取指定范围的值后再赋值给key:

     rpoplpush 源列表 目的列表 (从源列表中rpop一个值然后lpush给目的列表):

     lset key index value (把列表中某一个索引的值设置为另一个值)

     linsert key before/after 值1 值2  给列表里的值1 前面/后面 插入值2

    list性能总结:

    它是一个字符串链表,left,right都可以插入添加;

    如果键不存在,创建新的链表;

    如果键已存在,新增内容;

    如果值全移除,对应的键也就消失了。

    链表的操作无论是头或者尾效率都极高,但假如是对中间元素进行操作,效率就很低了。

    redis集合(set):

    单键多值

    sadd/smembers/sismember (添加一个集合 集合名 值 /显示集合所有的值/判断一个值是否在集合里面)

     scard (获取集合里面的元素个数)

     srem key value 删除集合中的元素

     srandmember key 某个整数(随机出几个数,不输入的话,默认出一个数)

     spop key (随机出栈)

     

     smove key1 key2 在key1里某个值 (作用是将key1里的某个值移动到key2)

     数学集合类(差集:sdiff;交集:sinter;并集:sunion)

     sdiff 类似与求01集合与02集合的不同元素,01集合在前,02集合在后,则求出来的是01集合中与02集合不同的元素,反之亦然。

     sinter求集合之间的交集,即求出多个集合中相同的元素。

     sunion 求集合之间的并集,如上例,即求出set01集合与set02集合中所有的元素并不重复的输出。

    redis哈希(Hash):

    kv模式不变,但v是一个键值对:

    hset/hget/hmset/hmget/hgetall/hdel

     

     

    hlen 获得哈希的键值对个数

     

     hexists key 判断在key里面的某个值的key有没有,有则输出1,没有则返回0:

     hkeys/hvals (获得一个哈希key中所有的key/values):

     hincrby N/hincrbyfloat N(使哈希key中的一个key自增N)

     

     hsetnx key (输入一个哈希key,如果不存在,则成功,返回1,如果已经存在,则失败,返回0):

     有序集合Zset(sorted set)

    它就是在set的基础上加一个score值。

    之前set是k1 v1  v2 v3

    现在Zset就是k1 score1 v1 score2 v2。。。

    然后就是它的一些基本指令:

    zadd/zrange

    zrangebyscore key 开始score 结束score

     zrem key 某score下对应的value值,作用是 删除元素

     zcard/zcount key score区间 /zrank key values值

     

     zrevrank key values值 作用是逆序获得下标值

     zrevrange key 开始序列 结束序列 (把有序集合逆序输出):

     zrevrangebyscore key 开始score 结束score(作用是将score对应的value逆序输出):

  • 相关阅读:
    Asp.net性能优化总结(一)
    Visual C#常用函数和方法集汇总
    ASP.net下大文件上传的解决方案及WebbUpload组件源码
    正则表达式学习
    在Asp.net中为图像加入版权信息
    Cognos 维度函数
    Cognos8.3函数使用手册(二)
    cognos更新步聚
    Cognos8.3函数使用手册(一)
    Cognos 8 报表备份和恢复
  • 原文地址:https://www.cnblogs.com/wanghaoyu666/p/12168144.html
Copyright © 2011-2022 走看看