欢迎来到[小脾气]的博客

做人要像铜钱,内方外圆

redis基础

redis小知识

  • 单进程模型:对读写等事件的响应是通过对epoll函数的包装来做到的。
  • 默认16个数据库切片,下标从0开始,初始默认使用0号库,各个库之间相互隔离,可以使用move key db_index来完成key的移动。
  • dbsize查看当前库的所有key数量,flushdb清空当前库key,flushall清空所有库key。
  • 统一密码管理,即所有库都使用同一密码。
  • 相关key的操作:keys *用于查看当前库所有key值,expire key seconds用于设置key过期时间,ttl key查看key还有多少秒过期(-1永不过期, -2已过期),type key查看key的类型。

String类型

  • redis的string类型是二进制安全的,即可以包含任何数据(比如图片或者序列化的对象)。一个字符串的value最多可以容纳521M数据
  • 相关操作:
    1. set设置值;get获取key对应值;del删除key;append追加key对应的value;strlen获取key对应value长度。
    2. incr key按1递增;decr key按1递减;incrby key num按指定数值递增;decriby key num按指定数值递减。
    3. getrange key start end获取指定区间的值;setrange key start new_value设置置顶区间范围的值,从开始下标替换新值长度的新值。
    4. setex key seconds value设置时指定超时时间;setnx key value当不存在时设值,存在时则无效  5. mset key1 val1 key2 val2 ...批量设值;mget key1 key2 ...批量获取;msetnx key1 val1 key2 val2 ...当有一个不存在时,则该命令不生效。

List类型

  • List类型为单值多value,类似于java中的List链表,但它是双向列表,两边都可以插入且效率都极高。
  • 相关常用操作:
    1. lpush key val1 val2 ...设置一个list,从左边插入,对应的右边插入有rpush,利用该特性可以将list作为堆栈使用;lrange key start end遍历一个list,其中索引支持负数反向。
    2. lpop key从左边移除一个元素并返回,对应的有rpop
    3. lindex key index按照索引下标获取元素;llen key获取list长度
    4. lrem key num value删除指定数量的value值的元素;ltrim key start end截取指定范围内的元素列表(边界均包含),并赋值给该key;
    5. rpoplpush key1 key2将源列表的一个元素出栈并向目标列表入栈;lset key index value将列表指定位置的值替换;linsert key before/after value new_value 在指定列表的指定value之前/之后插入新值。

Set类型

  • 常用操作:
    1. sadd key val1 val2 ...向set中插入元素,若重复会自动剔除;smembers key获取set所有元素;sismember key value判断指定value是否为set元素,1是0否。
    2. scard key获取set中元素个数;srem key value删除指定元素;srandmember key num在set中随机获取指定个数的元素;spop key随机出栈;smove key1 key2在key1中某个值移动到key2中。
    3.  sdiff key1 key2求key1相对于key2的差集(只在key1中,不在key2中);sinter key1 key2求二者的交集(二者均存在);sunion key1 key2求二者的并集。

Hash类型

  • 小记 key-value模式不变,但是value是一个键值对。
  • 常用操作:
    1. hset key field val为hash对象属性赋值;hget key field获取hash对象指定属性的值;对应的批量操作为hmset key field1 val1 field2 val2 ...hmget key field field2 ...hgetall key获取hash对象全部键值对;hdel key field删除hash对象指定属性;hlen key获取hash对象的属性个数;
    2. hexists key field判断指定属性名是否存在;hkeys key获取hash对象的所有属性名;hvals key获取所有属性对应的值;hincrby key field num对指定属性对应的值做递增操作,hincrbyfloat key field num浮点数递增;hsetnx key field value不存在时再添加属性。

Zset(sorted set)类型

  • 常用操作:
    1. zadd key score1 element1 ...添加元素(带分数);zrange key start end获取所有zset元素,zrange key start end withscores获取zset所有元素,并展示分数,对应的有zrevrange从大到小;zrangebyscore key (start_score (end_score *limit start num*获取指定分数范围的元素,括号表示不包含,limit在结果中从指定下标截取指定个数元素,对应的有zrevrangebyscore从大到小;
    2. zrem key element删除指定元素;zcard key获取element元素个数;zcount key start_score end_score统计指定分数范围内的元素个数;zrank key element按分数从低到高排名后获取指定元素的排名(从0开始),zrevrank key element按分数从高到低排名后获取指定元素的排名(从0开始);zscore key element获取指定元素的分数值;

posted on 2018-03-05 11:03  嚯嚯,小脾气  阅读(99)  评论(0编辑  收藏  举报

导航