set类型:新的存储需求:存储大量数据 在查询方面提供更高的效率
需要的存储结构:能够保存大量的数据 搞笑的内部存储机制 便于查询
set类型 :与hash存储结构完全相同金存储键 不存储值(nil),并且值是不允许重复的
set类型数据的基本操作:
添加数据:sadd key member1[member]
scard key 获取集合数据总量
sismember key member:判断集合中是否包含指定数据
smembers key:获取集合中的所有元素
set类型数据的扩展操作
业务场景 设置3项爱好习惯
srandmember key [count] 随机获取集合中指定数量的数据
spop key:随机获取集合中的某个数据并将该数据移除集合
redis用于随机推荐类信息检索 例如热点歌单推荐 等
求两个集合的交并差集
sinter key1[key2]
sunion key [key2]
sdiff key [key2]
求两个集合的交并差集到指定集合中
sinterstore destination(表示新集合) key1[key2]
sunionstore destination key1[key2]
sdiffstore destination key1[key2]
将指定数据从原始集合中移到目标集合中
smove source destination member
吧 某集合 移到 目标集合 某集合的数据
redis英语用同类信息关联搜索 二度关联搜索 深度关联搜索
set类型数据操作的注意事项:
set类型不允许数据重复 如果添加的数据在set已经存在 将只保留一份
set虽然和hash的村塾结构相同 但是无法启用hash中存储值的空间
->redis应用于同类型不重复数据的合并操作.
公司对旗下新的网站做推广 统计网站的PV(访问量)UV(独立访客)IP(独立IP)
PV:网站呗访问次数 可以通过刷新页面提高访问量
UV:网站被不同用户访问的次数 可以通过cookie统计访问量 相同用户切换IP地址 UV不变
IP:网站被不用IP地址访问的总次数 开团通过IP统计访问量,相同IP用户访问 IP不变
简历String类型的数据 利用Ince统计日访问量
简历set模型记录不同cookie数量
简历set模型 记录不同IP数量
业务场景 黑名单和黑名单
sorted_set:新的存储需求:数据排序有益于数据的有效展示
zadd key score1 member[score2 member2]:添加数据
成绩在前 名字在后
获取全部数据
zrange key start stop[WITHSCORES]-》代表显示他的名字
zrevrange key start stop[WITHSCORES]
删除数据
zrem key member 【member ....】
zrangebyscore key min max [WITHSCORES][LIMIT]满足多少分到多少分 limit表示限制分页
zrev rangebyscore key max min [WITHSCORES]
条件删除数据
zremrangebyrank key start stop
zremrangebyscore key min max
min和max用于限定都做查询的条件
start和stop用于限定查询范围 作用于缩阴 表示开始和结束索引
offset和count用于限定查询范围 作用于查询记过 表示开始位置和数据总量
zcard key:获取集合数据的总量
zcount key min max :获取集合数据总量
集合交 并操作
zinterstore destination numkeys key[key]
zunionstore destination numkeys key[key]
要合并后集合的名字 要合并几个集合 分别的集合名字
交并求和
--redis应用于业务排序功能
获取数据对应的索引
zrank key member
zrevrank key member
score值获取与修改:zcore key member
zincrby key increment member
score的存储空间是64位 如果用double 基于双精度浮点数的特征 可能会都是精度
sorted基于vip体验等具有时效性的 当任务或者消息待处理 形成了任务队列或消息队列时,对于高级优先级的任务要保障对其优先处理 用score记录它的权重
获取当前系统信息 time
key的基本操作
删除指定的key:del key
获取key是否存在:exists key
获取key的类型 type key
为key设定有效期expire key seconds 秒
pexpire key milliseconds 毫秒
expireat key timestamp linux使用
pexpireat key milliseconds-timestamp linux 使用
获取key的有效时间:ttl key
pttl key
返回-2表示已经不存在了
-1 表示还存在
其他数字表示当前有效时常
切换key从时效性转换为永久性
查询key: keys pattern
keys *-》表示查看所有的key
pattern:*任意自负 ? 匹配任意符号 []匹配一个指定符号
例如 * 全部
it* it开头的
*heima 查询黑马结尾的
??heima 表示前两个符号任意 后面是heima
user:? user:开头 最后一个随意
u[]er:1 查询以u开头 er:1结尾 中间包括[]中的任意一个字符
key改名:rename key nerkey
如果因为改名 会吧原有的key覆盖
所以用下面这个
ranamenx key newkey 表示如果没有的话 改名
对所有key排序 sort 只是排序 不会动原数据
其他key通用操作:
help @generic
数据库的通用指令
切换数据库:delect index
其他操作
quit 退出 exc是一样的
ping 测试服务器是否连同
echo message输出日志
数据移动: move key db 表示移动删除 如果目标用户也有 但么就会覆盖
数据清除:dbsize 查看数据库里有多少个key
flushdb 删除当前数据库
flushall :掀桌子