Redis相关技术内容
1. Redis整体的技术全景
-  应用场景:数据结构的应用、缓存应用、集群应用 
-  底层原理:线程模型、主从复制、负载均衡  数据结构、哨兵机制、数据分片  AOF、 RDB 
2. 并发承载
- redis(官方 10w/s)
- 数据库->mysql 并发范围:写:600/s 读 2000/s
3. Redis的基本数据类型
基本数据类型:string、hash、list、set、zset。
3.1 string类型
-  setnx 不存在才set set a 1 nx
-  setxx 存在才set set b 2 xx
-  mset 批量set mset a 1 b 2 c 3
-  mget 批量获取 mget a b c d
-  incr incr-key 自增值 set incr-key 1incr incr-key
-  decr incr-key 自减 decr incr-key
-  getset hello hello 获取到旧的值 set hello 1getset hello newvalue此时返回的是1,但是hello已经被设置成newvalue
-  setrange hello 5 x 将hello 第5的位置设置成x 
-  getrange hello 1 4 获取范围 
3.2 hash类型
可以用于存储关系型数据库的二维表结构的数据。
-  hset user:1 name li 在user:1的数据上存储了name:li的值 
-  hset user:1 age 24 
-  hmset user:2 name zhang age 18 批量设置 
-  hsetnx user:1 name li 
-  hget user:1 name 拿到user:1数据上的name对应的值 
-  hmget user:1 name age 
-  hlen user:1 取出长度数据 
-  hvals user:1 取出所有的key的值 
-  hkeys user:1 取出所哟key的名称 
-  hgetall user:1 取出所有key value 
-  hincrby user:1 id 2 自增内部字段的值 
3.3 list类型
存储最多的元素个数:2的32次方-1个(4294967296)
有序的元素。
- rpush demolist a 向右边插入一个值
- lpush demolist b 向左边插入一个值
- lrange demolist 0 -1 取出list的所有值列表
- lpop demolist 2 弹出元素右边两个(不传入参数则默认为一个)元素
- lrem demolist 2 y 从作向右删除2个y
- ltrim demolist 0 1 保留0-1位置的值
- lset demolist 1 xx 将1位置值改成xx
- lindex demolist 1 取出1位置的值
- llen demolist list的长度
应用场景可以是:文章列表,做分页有序,支持范围的业务。
3.4 set类型
没有重复的数据集合
- sadd demoset a b c d e f d d 添加后会进行去重
- smembers demoset 查看集合所有值
- srem demoset c d 删除指定值
- smemebers demoset a 查询元素是否存在
- scard demoset 查存在多少个元素
- srandmember demoset 随机返回一个元素
- spop demoset 弹出一个元素
- del demoset 删除key
- sinter set1 set2 求并集
- sunion set1 set2 求交集
- sdiff set1 set2 求差集
- sinterstore interset set1 set2 将交集结果存在interset(set)中
应用场景:打标签,生成随机数这样的场景。
3.5 zset类型
结构是key :二维的score、member表格存储的值
-  zadd zset 90 lisi 
-  zadd zset 95 wangwu 
-  zadd zet 100 zhangsan 
-  zcard zset 查看值多少条记录 
-  zscore zset lisi 查看lisi的分数 
-  zrank zset lisi 查看lisi的排名 
-  zrevrank zset lisi 反转排序取出lisi的排名 
-  zincrby zset 6 lisi 将lisi的分数增加6分 
-  zrange zset 0 1 withscores 获取到按照升序、排名前二的姓名和成绩 
-  zrevrange zset 0 1 withscores 反转获取到降序、排名前二的姓名和成绩 
-  zrangebyscore zset 96 100 分数范围查询 
应用场景:求平均成绩
- zinterstore zsetavg 2 set1 set2 weights 0.5 0.5
- zrange zsetavg 0 -1 withscores
