string Redis-list:列表 在首尾都可以添加数据 lpush/rpush/lrange ---- 从左/从右/获取指定长度 lpush list01 1 2 3 4 5 倒序排列 rpush list02 1 2 3 4 5 正序排列 lrange list01 0 -1 获取list01 中的所有值 0到-1 从第0个获取到最后一个 左边推 右边推 添加 栈 先进后出 堆 先进先出
按照索引下标获取元素: lrange list01 0 -1 获取所有 lindex list01 1 获取第二个
Redis 中返回nil就是空值,没有返回 负值也是可以的,就是倒着取
LREM 删除 LREM L3 2 3 删除L3中的2个3 一般不会报错,除非语法就错误了
如果是LREM L3 -2 3 就是倒着删
也可以移除所有与该值相等的,通过:LREM L3 0 5 删除所有的5 0是最小的,但是可以表示无限大
截取: ltrim ltrim 截取一段数据 通过xshell的方式可以在敲的指令后显示提示内容
通过这些可以列出一个用户浏览记录: 一个列表 保存了用户浏览了网站的某一些商品 用户的浏览记录可以保存5条,如果多了的话,就把先进的弹出去 只保留最新的浏览记录, 1.先判断,是否有值, 2.推值 3.截取
应用场景: 项目里的应用场景
Redis-hash 哈希类型: hset user id 1 hget user id hmset:设置多个 hgetall 获取所有hgetall user
del 可以删除任何类型的数据
哈希 键值对 一一对应的,
hexist key检测某个值是不是存在 hincrby 不存在就创建且赋值 存在就自增 hincrby user gender 1: 自增之后是什么样子的啊? 显示的内容有什么意义? hincrby user gender 100 返回的102是什么意义 没有就创建 有就自增, 可以用于买了什么东西,买了多少个,没有就创建,有买过就在原基础上自增
哈希可以用于存储商城中的购物车
购物车我就理解了,没有添加就添加,如果添加过就在原基础上在添加若干个
集合 不重复的集合: set: 重复了呢?自动去重 sadd:添加 sadd s1 1 2 4 4 5 6 敲回车会返回5个,因为重复的不作数 smembers: s1 可以显示 可以自动排序:数字可以排序,其他不会
哈希 的键是唯一的吗?唯一的啊! 但是不可能是有序的
sismember s1 4 判断某一个数是不是在,在就是1 不在是0 scard s1:判断集合元素个数
srem key value: srem 删除某些元素 srem s1: 1 2 srandmember s2 3 随机去3个值 默认是1 并未修改原来的值 只是随机的显示几个值
spop s2 3 可以随机出栈3个值, 但是这个出去就没了,原来的值里面没有出的这几个了 smove:将memer元素从源中移动到目标中 从一个集合移动到另一个集合之中 其他操作:差并补 sinter : 去重 不会重复 比如关注 欧冠抽签
Redis-Zset 有序集合: 也是键值对 但是不能重复 有序集合和集合一样 是不能重复的 定义时无法定义 定义时 zadd 查看 zrange 用途可以用于存储有序且唯一的,zadd z1 1 lcy 2 lcy1 3 lcy2 这样会根据前面的1 2 3排序 可以看做是ID zrange z3 zrange byscore z3 10 30 返回ID为10-30的内容 此时列出的是ID和内容 zcard 看总的条数