一:String 类型
1.String k-v 单个key 最大能存 512 MB,约等于 多少文字呢?
增: set key value 例子: set adminName ‘zhangsan’
查: get key 例子: get adminName
查询所有的key: keys * 例子: keys *
删key: del key 例子: del adminName
String的 特有命令
批量增: mset key1 value key2 value
批量查: mget key1 key2
字符串截取: getrange key start end 用索引
先查再存: getset , 格式 getset key value
将给定的key 的值设置value ,并返回 key 旧值 应用场景: 工资
(重要)自增(减): incr 场景 : 抖音点赞,产品的热销排行, 自增的
定量增: incrby incrby mycode 50
自减: decr key
定量减: decrby decrby mycode 50
过期时间(重要): setex 村的时候就直接给定一个过期时间, 验证码就用它
先时间 后是 value 格式: setex code 60 lalala
字符串长度: strlen key 的长度, 不存在的key 的长度 是 0
字符串的追加: append key value ,追加的位置是 value 的末尾
//其他的通用命令
- DUMP 给定key 中的值进行 序列化, 返回值 是 序列化后的值,了解**
- exists key 值是否存在,很常用!! 返回值是1 后者 0, 1代表存在 0代表不存在
- expire 给key 做一个过期时间,写的值是 过期秒数 例子: set phoneCode 3343 ,expire phoneCode
到期之后,key 自动删除 这个很常用!! - ttl 查询 还剩余多少时间 过期 秒为单位,应用场景,1) 订单 15分钟有效, 2)考试
- persist 移除 key 的过期时间,将key 保持为持久状态,, 开票
- rename 更改key 值,这个不常用!! 自己测试
- renamex 当 key 新的 key 不存在时,改名为 新名字,了解。。
- type key 返回 key 的数据类型 – 5中
- randomkey 随机出key 抽奖常用的, 点名,随机点名
二: Hash 哈希 类型。 适合存储对象
增: hset person name ‘dididi’
删: hdel person name
批量增: hmset food name “apple” color “red”
查: hget food color
批量查: hget human name age
查所有的key: hkeys food
查所有的key 和 value : hgetall human
hash 字段的自增: hincrby human age 10
key person value 一堆 k-v 组合
hash 数据类型的遍历: Hscan 不怎么常用 ,自己测试
三: list – 双端队列结构。先进后出,排序是 按照 插入的顺序排序的
比如: 沙和尚 猪八戒 孙悟空 唐僧 刘备 关羽 张飞 赵云
从左边增: lpush key xxx
从右边增: rpush key xxx
遍历: lrange key 0 -1
左边删除: lpop key
右边删除: rpop key
插入指定元素之前: linsert key before “liubei” “didi” 把didi插入刘备之前
单查: lindex hero 0
删除指定的值: 比较复杂 lrem hero count value
count > 0 从头向尾巴,从左到右 搜索,移除和 value 相等 元素,数量为count
count < 0 从尾巴向头,从右到左 搜索,移除和 value 相等 元素,数量为count 的绝对值
count = 0 表示移除所有与 value 相等 的值
注意: 因为是list 的数据类型,所以值是 可以相同的,比如 有两个 相同的值,
四:set 数据类型,set 无序,不能重复,做扑克牌
增: sadd key value
查条数: scard 获取key 的成员数量
查全: smembers key 返回集合中的 所有成员(value)
按索引查单???: 没有,因为没有顺序
指定的删除: srem key value
随机删除!用途很广,: spop names
作业: 用Java代码写,把咱们班3个人的名字 形成一个集合,随机点一个人的名字,把这个人的名字移除,再次点名就没有这个人了
随机查: srandmember
五:zset sortset,有序的set集合 ,可以有序但是不重复
他是 set 扩展版,每个元素都关联了个 double 类型的分数,根据分数的大小进行排序
排序的规则是 从小到大,分数可以并列,即 分数可以重复,,成员(value) 必须唯一
底层是 哈希表实现的,添加删除 很快
增加: zadd key 分数 值, pnames
遍历: zrange key 0 -1 withscores 加上withscores 带分数,不带 直接全部显示值
查条数: zcard key
指定删除: 移除集合中的一个或者多个成员 zerm key value