美文网首页
Redis 笔记

Redis 笔记

作者: 代码界的小学生 | 来源:发表于2016-09-19 17:09 被阅读0次

    Redis的数据类型

    expire(为给定 key 设置生存时间)
    
    语法:expire key seconds
    

    String 字符串类型
    一个键最多存储512M

    1> SET:设置key对应值为value
    语法: SET key value
    SET str1 'xdl'
    
    2>GET:根据KEY找到对应的值
    语法: GET key
    注意:如果key不存在 返回nil
    
    3>GETRANGE:返回字符串中的一部分
    语法: GETRANGE key start end 
    
    GETRANGE str1 0 1
    GETRANGE str1 0 -1
    GETRANGE str1 0 -2
    GETRANGE str1 0 1000
    
    4>GETSET:设置指定key的值,并返回旧值
    语法: GETSET key value
    
    SET str2 'itxdl'
    GETSET str2 'xdl'
    注意:当key不存在返回nil
    
    5>MSET:一次设置多个键值对
    语法:MSET key value [key value .......]
    
    MSET str4 'xdl' str5 'itxdl' str6 'xdlo2o'
    
    
    6>MSETNX:一次设置多个key-value对,只有所有的key都不存在的时候才会成功
    语法: MSETNX key value [key value .....]
    
    MSETNX str10 'a' str11 'b' str12 'c'
    
    MSETNX str12 'd' str13 'e'
    
    
    7>MGET:一次得到多个键值
    语法: MGET key key 
    
    MGET str4 str5 str6 
    
    8>STRLEN:获取key的字符串长度
    语法: STRLEN key
    STRLEN str4
    
    9>SETRANGE:相当于字符串替换
    语法:SETRANGE key offset value 
    
    SET str7 'hello'
    
    SETRANGE str7 5 'xdl'
    
    注意: 如果设置key原来的字符串的长度比偏移量小,就会以零字节(\x00)来填充
    
    10>SETNX:只有KEY不存在的时候才能设置成功
    语法: SETNX key value
    SETNX str7 'hello'
    
    11>SETEX:设置一个KEY并且设置一个过期时间
    语法: SETEX key seconds value 
    
    SETEX str8 30 'xdl'
    
    12>PSETEX: 以毫秒为单位设置KEY的生存周期
    语法:PSEREX key milliseconds value
    
    PSETEX set9 20000 'hello'
    
    13> INCR:对key中存储的数字加1 
    
    语法: INCR key 
    
    SET str14 1
    
    INCR str14
    
    INCR str15
    注意:key如果不存在,则会先初始化为0,在进行INCR操作
    
    14>INCRBY:将key中存储的数字加上指定增量
    语法: INCRBY key INCREMENT
    SET str16 10
    INCRBY str16 5
    INCRBY str16 1.5
    
    15>INCRBYFLOAT:将key中存储的数字加上指定浮点数
    语法; INCRBYFLOAT key increment
    SET str17 1
    INCRBYFLOAT str17 1.5 
    
    16>DECR:将key中存储的数字减1
    语法: DECR key
    SET str18 1
    DECR str18 
    
    17>DECRBY:将key中存储的数值减指定值
    语法: DECRBY key decrement
    SET str19 20
    DECRBY str19 5
    
    18>APPEND:通过APPEND将值追加到字符串末尾
    语法:APPEND key value
    SET str20 'xdl'
    APPEND str20 'o2o'
    

    LIST列表类型

    1>LPUSH:向列表左端添加元素
    语法: LPUSH key value value ....
    LPUSH list1 a b c 
    
    2>RPUSH:向列表右端添加元素
    语法: RPUSH key value ....
    RPUSH list1 d e 
    
    3>LRANGE:获取列表片段
    语法: LRANGE key start stop 
    LRANGE list1 0 -1
    
    4>LPUSHX:向列表头部添加元素,只有key存在才添加
    语法: LPUSHX key value
    LPUSHX list1 a 
    
    5>RPUSHX:向列表尾部添加元素,只有key存在才添加
    语法: RPUSHX key value 
    
    6>LPOP:将列表头部的元素弹出
    语法: LPOP key 
    LPOP list1
    7>RPOP:弹出列表尾部元素
    语法: RPOP key 
    RPOP list1
    8>LLEN:获取列表长度
    语法 LLEN key 
    LLEN list1 
    
    9>LREM:删除列表中的指定值
    语法: LREM key count value
    count >0 :从列表头部开始,向尾部搜索,移除与value相等的元素,移除count个
    count <0 :从列表的尾部开始,向头部搜索,,移除与value相等的元素,移除count个
    count = 0:移除列表中所有与value相等的元素
    
    LPUSH list3 a b c d a e b d c b e d 
    LREM list3 2 a
    LREM list3 -2 b
    LREM list3 0 d
    
    10>LINDEX:获取指定索引元素上的值
    语法: LIDEX key index
    LINDEX list3 3
    
    11>LSET:设置指定元素的值
    语法: LSET key index value
    LSET list3 10 a
    
    
    12>LTRIM:只保留列表片段
    语法:LTRIM key start stop 
    
    LTRIM list3 0 3
    
    LPUSH list3 a b c a b c a b c 
    
    LTRIM list3 0 1000 
    
    13>LINSERT 向列表中插入元素
    语法: LINSERT key BEFORE|AFTER pivot value
    
    LPUSH list4 a b c d 
    
    LINSERT list4 BEFORE 'b' 'x'
    LINSERT list4 AFTER  'b' 'x'
    
    14>RPOPLPUSH:将元素从一个列表转移到另一个列表
    语法 RPOPLPUSH  source destination 
    LPUSH list5 a b c 
    LPUSH list6 x y z 
    RPOPLPUSH list5 list6 
    

    SET集合类型:无序集合

    1> SADD:向集合中添加一个元素
    语法 SADD key value [,.......]
    SADD set1 xdl
    SADD set1 itxdl
    
    2>SMEMBERS:返回指定集合中的元素
    语法: SMEMBERS key
    SMEMBERS set1
    
    3>SISMEMBER:检查member是否是集合中的成员
    语法:SISMEMBER key member
    SISMEMBER set1 xdl
    
    4>SREM:删除集合中一个或多个成员
    语法:SREM key member [member ....]
    
    SREM set1 xdl
    
    5>SPOP:删除并返回集合中的随机元素
    语法: SPOP key
    SPOP set1
    
    6>SRANDMEMBER:随机返回集合中元素
    语法: SRANDMEMBER key count
    注意:
        count 为正数,而且小于集合中的元素,返回一个随机元素的集合数组,
            count 数大于集合中的个数的时候,返回整个集合
        count 为负数,返回一个数组,数组中的成员可能出现重复,数组的长度是count的绝对值
    SRANDMEMBER set1 -3
    7>SDIFF:返回集合的差集
    语法: SDIFF key key ....
    SADD set2 a b c d 
    SADD set3 c d e f 
    SADD set4 a e 
    SDIFF set3 set2
    SDIFF set2 set3 set4
    
    8>SINTER:返回集合的交集
    语法: SINTER key key key ...
    SINTER set2 set3
    SADD set5 c 
    SINTER set2 set3 set5 
    
    9>SUNION:返回集合中并集
    语法: SUNION key key ... 
    SUNION set2 set3 
    SUNION set2 set3  set4 
    
    10>SCARD:返回集合中元素个数
    语法: SCARD key 
    SCARD set2
    
    11>SDIFFSTORE:将差集的结果保存到指定的集合当中
    语法: SDIFFSTORE destination key key  ....
    SDIFFSTORE set6 set2 set3
    
    12>SINTERSTORE:将交集的结果保存到指定的集合当中
    语法: SINTERSTORE destination key key  ....
    SINTERSTORE set7 set2 set3
    
    13>SUNIONSTORE:将并集的结果保存到指定的集合当中
    语法: SUNIONSTORE destination key key  ....
    SUNIONSTORE set8 set2 set3
    
    14>SMOVE:将集合中的元素移动另一个集合中
    语法 SMOVE source destination member 
    SMOVE set3 set2 e
    

    Hash类型

    1>HSET:将哈希表中的key中的field设置成指定的value
    语法:HSET key field value
    HSET h1 username 'zhangsan'
    HSET h1 password '123'
    HSET h1 age '18'
    
    2>HGET:返回哈希表key中给的field的值
    语法: HGET key field
    HGET h1 username 
    HGET h1 age
    
    3>HSETNX:将hash表中的field设置成指定的值,只有field不存在才能成功,如果field存在,操作无效
    语法 HSETNX  key field value
    HSETNX h1 aaa '20'
    HSETNX h1 aaa '21'
    
    4>HMSET:通过多个 field value设置到hash表key中
    语法 HMSET key  field value field value  .....
    HMSET h2 username 'lisi' age '20' password '456'
    
    5>HMGET:一次获得hash表key中多个field的值
    语法: HMGET key field field .....
    HMGET h2 username age password  
    HMGET h2 username age password  aaa 
    注意:如果hash表key中field不存在,返回nil
    
    6>HGETALL:返回hash表key中所有的field和value
    语法 HGETALL key 
    HGETALL h2
    
    7>HKEYS:返回hash表key中的所有的field
    语法 HKEYS key
    HKEYS h2 
    
    8>HVALS:返回hash表key中所有的field的对应值
    语法 HVALS key 
    
    HVALS h2
    
    
    9>HEXISTS:检测hash中key的field是否存在
    语法: HEXISTS key field
    HEXISTS h2 username
    HEXISTS h2 aaa
    
    10>HLEN:返回hash表key中的field的数量
    语法 HLEN key
    HLEN h2
    
    11>HINCRBY :给hash表key中的field做增量操作
    语法 HINCRBY key field increment
    HSET h3 age 20
    HINCRBY h3 age 5 
    
    12>HINCRBYFLOAT:给hash表key中的field做增量浮点操作
    语法: HINCRBYFLOAT key field increment
    HSET h3 aaa '12.2'
    HINCRBYFLOAT h3 aaa 2.5 
    
    13>HDEL:删除hash中key的指定field,可删除一个或多个
    语法: HDEL key field field  .....
    HDEL h2 username 
    HGETALL h2 
    

    zset(sorted set)有序集合

      1》ZADD:将元素及其分数添加到集合中
      语法:ZADD key score member [score member]
      ZADD zset 100 xdl 
      ZADD zset 98 zhangsan 98 list 80 test 78 test1 85 test2
      ZADD zset  60 test2 67 test3 56 test4
    
      2》ZSCORE:获得指定元素的分数
      语法:ZSCORE key member
      ZSCORE zset  xdl
      ZADD zset 12.3 test5 
    
      3》ZRANGE:按照元素分数从小到大的顺序返回指定索引start到stop之间所有元素(包含两端)
      语法:ZRANGE key start stop [WITHSCORES]
      ZRANGE zset 0 -1
      ZRANGE zset  0 -1 WITHSCORES
      ZRANGE zset  0 2 WITHSCORES
      ZRANGE zset   0 2000 WITHSCORES
      ZRANGE zset   1000 2000 WITHSCORES
      ZADD zset   60 test6 60 test7 60 test8 60 test9
    
      注意:当两个元素的分数相同的时候,Redis在排序按照字典的顺序(0<9<A<Z<a<z),如果使用的是UTF-8的编码方式的中文同样按照字典顺序排列
    
      4》ZREVRANGE:和ZRANGE相反,按照分数从大到小的顺序
      语法:ZREVRANGE key start stop [WITHSCORES]
      ZREVRANGE zset   0 -1 WITHSCORES
      
      5》ZRANGEBYSCORE:获得指定分数范围内的元素,按照分数从小到大的顺序,返回的是分数在指定的min到max的元素
      语法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
    

    获得分数80~90之间的所有元素 包含80 90

      ZRANGEBYSCORE zset   80 90
      ZADD zset  81 test9 82 test10 83 test11 84 test12 84 test13 88 test14 89 test15 90 test16
      ZRANGEBYSCORE zset  80 90 WITHSCORES
      ZRANGEBYSCORE zset  80 (90 WITHSCORES
      ZRANGEBYSCORE zset  (80 (90 WITHSCORES  
      RANGEBYSCORE zset  (80 (90 WITHSCORES  LIMIT 0 3
    

    注意:通过(代表不包端点

      6》ZREVRANGEBYSCORE:获得指定分数范围内的元素,按照元素的分数从大到小的顺序返回min和max之间的元素
      语法:ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
      ZREVRANGEBYSCORE zset  90 80 WITHSCORES
    
      7》ZINCRBY:操作某个元素的分数,返回操作之后的分数
      语法:ZINCRBY key increment member
      ZINCRBY zset  5 test16
      ZINCRBY zset   -15 test16
    
      8》ZCARD:获得集合中元素的数量
      语法:ZCARD key
      ZCARD zset   
    
      9》ZCONUT:获得指定分数内的元素的数量
      语法:ZCOUNT key min max
      ZCOUNT zset   80 90
      COUNT zset   (80 (90
    
      10》ZREM:删除一个或者多个元素,返回删除元素的个数
      语法:ZREM key member ...
      ZREM zset   test16
      
      11》ZREMRANGEBYRANK:按照排名范围删除元素,按照分数从小到大的顺序删除所指定的排名范围内的所有元素
      语法:ZREMRANGEBYRANK key start stop
      ZADD testRem 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
      ZREMRANGEBYRANK testRem 0 2
      ZRANGE testRem  0 -1 WITHSCORES
    
      12》ZREMRANGEBYSCORE:按照分数范围删除元素
      语法:ZREMRANGEBYSCORE key min max
      ZADD testRem1 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
      ZREMRANGEBYSCORE testRem1 3 7
      ZRANGE testRem1   0 -1 WITHSCORES
    
      13》ZRANK:获得指定元素的排名,根据分数从小到大的顺序
      语法:ZRANK key member
      ZRANK zset xdl
      ZRANGE zset    0 -1 WITHSCORES
    
      14》ZREVRANK:获得指定元素的排名,根据分数从大到小的顺序
      语法:ZREVRANK key member
      ZREVRANK zset xdl
      ZREVRANGE zset  0 -1 WITHSCORES
    
      15》ZINTERSTORE:计算有序集合的交集,并将结果保存起来
      语法:ZINTERSTORE destination numkeys [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]
      ZADD zset2 1 a 2 b 3 c
      ZADD zset3 10 a 20 b 30 c
      ZINTERSTORE zset4 2  zset2  zset3 
      ZREVRANGE zset5   0 -1 WITHSCORES
      ZINTERSTORE zset4 2  zset2  zset3  AGGREGATE SUM
      ZINTERSTORE zset5 2  zset2  zset3  AGGREGATE MIN
      ZINTERSTORE zset6 2  zset2  zset3 AGGREGATE MAX
      ZINTERSTORE zset7 2  zset2  zset3  WEIGHTS 2 0.2
    
      16》ZUNIONSTORE:计算有序集合并集,将结果保存起来
      语法:ZUNIONSTORE destination numkeys key key ... [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]
      ZADD zset8 1 a 2 b 3 c
      ZADD zset9 4 d 5 e 6 f 7 a
      ZUNIONSTORE zset10 2   zset8 zset9
      ZRANGE  zset10 0 -1 WITHSCORES
      ZUNIONSTORE zset11 2 zset8 zset9 AGGREGATE SUM
      ZRANGE  zset11 0 -1 WITHSCORES
      ZUNIONSTORE zset12 2  zset8 zset9 AGGREGATE MIN
      ZRANGE  zset12 0 -1 WITHSCORES
      ZUNIONSTORE zset13 2  zset8 zset9 AGGREGATE MAX
      ZRANGE  zset13 0 -1 WITHSCORES
      ZUNIONSTORE zset14 2  zset8 zset9 WEIGHTS 2 2
      ZRANGE  zset14 0 -1 WITHSCORES

    相关文章

      网友评论

          本文标题:Redis 笔记

          本文链接:https://www.haomeiwen.com/subject/cbdnettx.html