2-2通用命令
1 2 3 4 5 6 7 8
   | keys * #遍历所有key del key [key…] #删除指定的key-value dbsizee 算出key的总数 expire key seconds #key在sc秒后过期 ttl key #查看key剩余的过期时间(-1 代表没有过期时间 -2代表已过期) persist key #去掉key的过期时间 exists key #检查一个key是否存在 type key #返回key的类型,结果为string hash list set zset none(key不存在)
 
  | 
 

2-3 数据结构和内部编码


2-4 单线程


单线程为什么还这么快?
其它注意点
1
   | keys,flushall,flushdb,slow lua script,mutil/exec,operate big value(collection)
 
  | 
 
- 其实不是全是单线程,如下面的命令  
fysnc file descriptor , close file descriptor 
2-5 字符串
场景: 缓存, 计数器,分布式锁
特点
key都为字符串 value可为 字符串(json) 整数 二进制
API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
   | 注:以下命令 时间复杂度均为 o(1)
 
  get key  
 
  set key value
 
  del key 
 
  incr key
 
  decr key o(1)
 
  incrby key k
 
  decr key k
 
  set key value
 
  setnx key value
 
  set key value xx
 
 
 
  | 
 
1 2 3 4 5 6 7
   | 注:以下命令 时间复杂度均为 o(n)
  mget keyl key2 key3...
 
  mset key1 valuel key2 value2 key3 value3
 
 
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | 注:以下命令 时间复杂度均为 o(1)
  getset key newvalue
 
  append key value
 
  strlen key
 
  incrbyfloat key 3.5
 
  getrange key start end
 
  setrange key index value
 
 
 
  | 
 
2.5 hash
特点
key还是String类型 ,值则分成 field和value,可以添加field来对属性进行扩充
redis本身就是一个map结构的,所以可以把这种数据结构理解成 “mapmap”,其中 field就像key一样不能相同 。

API所有命令都是以h开头
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   | 命令 时间复杂度均为 o(1)
  hget key field #获取hash key对应的field的value
  hset key field value #设置hash key对应field的value
  hdel key field #删除hash key对应field的value
  hexists key field #判断hash key是否有field
  hlen key #获取hash key field的数量
  hsetnx key field value #设置hash key对应field的value(如field已经存在,则失败)
  hincrby key field intCounter #hash key对应的field的value自增intCounter
  hincrbyfloat key field floatCounter #hincrby浮点数版
 
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | 命令 时间复杂度均为 o(n)
  hmget key field1 field2....fieldN #批量获取hash key的一批field对应的值
  hmset key fieldI valuel field2 value2..fieldN valueN #批量设置hash key的一批field value
  hgetall key #返回hash key对应所有的field和value
  hvals key #返回hash key对应所有field的value
  hkeys key #返回hash key对应所有field
 
 
  | 
 

