Table of Contents
-
# 设置某一位上的值(offset是偏移量,从0开始) setbit key offset value # 获取某一位上的值 GETBIT key offset # 统计键所对应的值中有多少个 1 BITCOUNT key # 比如user001 上线第2天 SETBIT user001 2 1
- 网站用户的上线次数统计(寻找活跃用户)
- 表示一年签到次数,
- 极大的节省了空间
Hash散列数据类型
- 定义
- 有一个key,后面是field和value组成
- field和value都是字符串类型
- hash中可以包含2的32次方-1个键值对
- 对hash的操作一般都是对field和value
- 优点:
- 因为只有一个key,比多个key节约了很多空间
- key越多,redis月耗费计算机资源(内存,计算)
- 缺点:
- hash不能使用位图操作 bitmap
- hash中的field不能使用过期操作
- 基本命令
-
# 1、设置单个字段 HSET key field value HSETNX key field value # 2、设置多个字段 HMSET key field value field value # 3、返回字段个数 HLEN key # 4、判断字段是否存在(不存在返回0) HEXISTS key field # 5、返回字段值 HGET key field # 6、返回多个字段值 HMGET key field filed # 7、返回所有的键值对 HGETALL key # 8、返回所有字段名 HKEYS key # 9、返回所有值 HVALS key # 10、删除指定字段 HDEL key field # 11、在字段对应值上进行整数增量运算 HINCRBY key filed increment # 12、在字段对应值上进行浮点数增量运算 HINCRBYFLOAT key field increment
-
- 应用场景 mysql + redis hash组合使用
- 使用流程:
- 1,判断在redis中是否存在key,存在则直接取出
- 2.如果不存在,从数据库中取出,放入redis
- 3.对数据更新操作之后,也要将redis中的数据更新
- 使用流程:
集合数据类型 set
- 特点:
- 无序,去重
- 注意事项:
- 1.集合中添加元素是 sadd,可以添加多个
- 2.集合中查看是用 smembers
- 3.查看元素是否存在 sismember
- 4.判断集合长度是 scard
- 5.移动集合元素到另一个集合 smove
- 6.差集diff 并集union 交集inter 都有两个方法,其中一个是store 可以将结果保存在一个新集合里面
- 基本命令
-
# 1、增加一个或者多个元素,自动去重 # 2、查看集合中所有元素 # 3、删除一个或者多个元素,元素不存在自动忽略 # 4、元素是否存在 # 5、随机返回集合中指定个数的元素,默认为1个 # 6、返回集合中元素的个数,不会遍历整个集合,只是存储在键当中了 # 7、把元素从源集合移动到目标集合 # 8、差集(number1 1 2 3 number2 1 2 4) # 9、差集保存到另一个集合中 # 10、交集 # 11、并集 # 1、增加一个或者多个元素,自动去重 SADD key member1 member2 # 2、查看集合中所有元素 SMEMBERS key # 3、删除一个或者多个元素,元素不存在自动忽略 SREM key member1 member2 # 4、元素是否存在 SISMEMBER key member # 5、随机返回集合中指定个数的元素,默认为1个 SRANDOMMEMBER key count # 6、返回集合中元素的个数,不会遍历整个集合,只是存储在键当中了 SCARD key # 7、把元素从源集合移动到目标集合 SMOVE source destination member # 8、差集(number1 1 2 3 number2 1 2 4) SDIFF key1 key2 # 9、差集保存到另一个集合中 SDIFFSTORE destination key1 key2 # 10、交集 SINTER key1 key2 SINTERSTORE destination key1 key2 # 11、并集 SUNION key1 key2 SUNIONSTORE destination key1 key2
-
- 使用场景:
- 爬虫中的url重复元素
- QQ中的共同好友,使用集合就可以
有序集合 sortedset
- 特点:
- 有序,去重
- 将每一个元素关联到一个浮点数上(score),然后按照从小到大排序显示(分值可以相同)
- 例子
-
分值 2.0 4.0 6.0 8.0 10.0 元素 西瓜 葡萄 芒果 香蕉 苹果
-
- 基本命令
-
# 在有序集合中添加一个成员 # 查看指定区间元素(升序) # 查看指定区间元素(降序) # 查看指定元素的分值 # 返回指定区间元素 # offset : 跳过多少个元素 # count : 返回几个 # 小括号 : 开区间 zrangebyscore fruits (2.0 8.0 # 删除成员 # 增加或者减少分值 # 返回元素排名 # 返回元素逆序排名 # 删除指定区间内的元素 # 返回集合中元素个数 # 返回指定范围中元素的个数 # 并集 # 交集:和并集类似,只取相同的元素 # 在有序集合中添加一个成员 zadd key score member # 查看指定区间元素(升序) zrange key start stop [withscores] # 查看指定区间元素(降序) ZREVRANGE key start stop [withscores] # 查看指定元素的分值 ZSCORE key member # 返回指定区间元素 # offset : 跳过多少个元素 # count : 返回几个 # 小括号 : 开区间 zrangebyscore fruits (2.0 8.0 zrangebyscore key min max [withscores] [limit offset count] # 删除成员 zrem key member # 增加或者减少分值 zincrby key increment member # 返回元素排名 zrank key member # 返回元素逆序排名 zrevrank key member # 删除指定区间内的元素 zremrangebyscore key min max # 返回集合中元素个数 zcard key # 返回指定范围中元素的个数 zcount key min max zcount fruits 4 7 zcount fruits (4 7 # 并集 zunionstore destination numkeys key [weights 权重值] [AGGREGATE SUM|MIN|MAX] # 交集:和并集类似,只取相同的元素 ZINTERSTORE destination numkeys key1 key2 WEIGHTS weight AGGREGATE SUM|MIN|MAX
-
4.扩展延伸知识
-
单位
- 1MB = 1024KB
- 1KB = 1024Byte(字节)
- 1Byte = 8bit(位)
- redis –raw
- redis中的哈希,都是操作
- field和value
- python中切片的选择
- 包括左边,不包括右边
5.知识内容个人梳理
6.今天都复习了之前的什么内容
单位
- 1MB = 1024KB
- 1KB = 1024Byte(字节)
- 1Byte = 8bit(位)
- field和value
- 包括左边,不包括右边