redis数据类型

来源:互联网 发布:linux fstable 编辑:程序博客网 时间:2024/06/05 16:03
  1. 字符串类型:String

    set key value    设定key持有指定的字符串value,如果该key存在则进行覆盖操作    总是返回OK
    get key    get命令只能获取String的value值,如果该key不存在,返回nil    获取指定key的value,如果与该key关联的value不是String类型,redis将返回错误信息
    getset key value    先获得该key的值,然后再给key赋予新的value
    del key    删除指定的key
    incr key    将指定的key的value原子性的递增1    如果该key不存在,其初始值为0,在incr之后其值为1    如果value的值不能转换为整型,如hello,该操作将执行失败并返回相应的错误信息
    decr key    将指定的key的value原子性的递减1    如果该key不存在,其初始值为0,在decr之后其值为-1    如果value的值不能转换成整型,如hello,该操作将执行失败并返回相应的错误信息
    incrby key increment    将指定的key的value原子性的增加increment    如果该key不存在,其初始值为0,在incrby之后其值为0    如果该值不能转换成整型,如hello则操作失败并返回相应的错误信息
    decrby key decrement    将指定的key的value原子性的减少decrement    如果该key不存在,其初始值为0,在decrby之后其值为0    如果该值不能转换成整型,如hello则操作失败并返回相应的错误信息
    append key value    拼凑字符串    如果key存在,则在原有的value后追加该值    如果该key不存在,则重新创建一个key/value
  2. 散列类型:hash

    hset key field value    为指定的key设定field-value(键值对)
    hmset key field value {field2,value2...}    设置key中的多个field-value(键值对)
    hget key field    返回指定的key中的field的值
    hget key fields    获取key中的多个field的值
    hgetall key    获取key中的所有field-value
    hdel key field [field ...]    删除一个或多个字段,返回值是被删除的字段个数
    del key    删除整个list
    hincrby key field increment    设置key中field的值增加increment,如:age增加5
    hexists key field    判断指定的key中的field是否存在
    hlen key    获取key所包含的field的数量
    hkeys key    获得所有的key
    hvals key    获得所有的value
  3. 列表类型:list

    lpush key values [values1 values2 ...]    在指定的key所关联的list的头部插入所有的values    如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向链表的头部插入数据,插入成功,返回元素的个数
    rpush key values [values1 values2 ...]    在该list的尾部添加元素
    lrange key start end    获取链表中从start到end的元素的值,start,end从0开始计数,也可为负数,若为-1则表示链接尾部的元素,-2则表示倒数第二个,以此类推...lrange key 0 -1    获取链表中所有的元素的值
    lpop key    返回并弹出指定的key关联的链接中的第一个元素,即头部元素    如果该key不存在,返回nil
    rpop key    从尾部弹出元素
    llen key    返回指定的key关联的链表中的元素的数量
    lpushx key value    仅当参数中指定的key存在时,向关联的list的头部插入value    如果不存在,将不进行插入
    rpushx key value    在该list的尾部添加元素
    lrem key count value    删除count个值为value的元素    如果count大于0,从头向尾遍历并删除count个值为value的元素    如果count小于0,则从尾部遍历并删除    如果count等于0,则删除链表中所有等于value的元素
    lset key index value    设置链表中的index的角标的元素值    0代表链表的头元素,-1代表链表的尾元素    操作链表的角标不存在则抛异常
    linsert key before|after pivot value    在pivot元素前或者后插入value这个元素
    rpoplpush resource destination    将链表中的尾部元素弹出并添加到头部[循环操作]
  4. 集合类型:set

    sadd key values[values1 value2 ...]    向set中添加数据,如果该key的值已有则不会重复添加
    srem key members [member1 member2 ...]    删除set中指定的成员
    smembers key    获取set中所有的成员
    sismember key member    判断参数中指定的成员是否在该set1表示存在,0表示不存在或者该key本身就不存在
    sdiff key1 key2 ...    返回key1与key2中相差的成员,而且与key的顺序有关[返回差集]
    sinter key1 key2 key3 ...    返回交集sunion key1 key2 key3 ...    返回并集
    scard key    获取set中成员的数量
    srandmember key    随机返回set中的一个成员
    sdiffstore destination key1 key2 ...    将key1、key2相差的成员存储在destination上
    sinterstore destination key[key ...]    将返回的交集存储在destination上
    sunionstore destination key[key ...]    将返回的并集存储在destination上
  5. 有序集合类型:sorted set

    zadd key score member score2 member2 ...    将所有成员以及该成员的分数存放到sorted-set中    如果该元素已经存在则会用新的分数替换原来的分数,返回值是新加入到集合中的元素个数,不包含之前已经存在的元素
    zscore key member    返回指定成员的分数
    zcard key    获取集合中的成员数量
    zrem key member[member ...]    移除集合中指定的成员,可以指定多个成员
    zrange key start end [withscores]    获取集合中角标为start-end的成员,[withscores]参数表明返回的成员包含其分数
    zreverange key  start stop [withscores]    按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)
    zremrangebyrank key start stop     按照排名范围删除元素
    zremrangebyscore key min max     按照分数范围删除元素
    zrangebyscore key min max [withscores] [limit offset count]    返回分数在[min,max]的成员并按照分数从低到高排序    [withscores]:显示分数    [limit offset count]:表明从角标为 offset 的索引开始并返回 count 个成员
    zincrby key incerment member    设置指定成员的增加的分数.返回值是更改后的分数
    zcount key min max     获取分数在 [min,max] 之间的成员
    zrank key member    返回成员在集合中的排名.(从小到大)
    zrevrank key member     返回成员在集合中的排名(从大到小)
  6. key的通用操作

    keys pattern    获取所有的与pattern匹配的key,返回所有与该key匹配的keys    *表示任意一个或多个字符;    ?表示任意一个字符.
    del key1 key2 ...    删除指定的key
    exists key    判断该key是否存在.1代表存在,0代表不存在
    rename key newkey    为当前的key重命名
    expire key second    设置过期时间,单位:秒
    ttl key     获取与该key所剩的超时时间    如果没有设置超时,返回-1.如果返回-2表示超时(key)不存在
    type key    获取指定key的类型.该命令将以字符串的格式返回.    返回的字符串为: string list set hash和zset ,如果key不存在返回none

    注意:
         1.key不要太长,最好不要超过1024字节,这不仅会消耗内存,还会降低查询效率
         2.key不要太短,如果太短会降低key的可读性
         3.在项目中,key最好有一个统一的命名规范

原创粉丝点击