数据结构:
存储的是key-values的形式
key是字符串,values是五种数据结构
- String 字符串
- Hash 哈希类型(Map格式)
- List 列表类型
- set 无序集合
- Sortedset 有序集合
命令操作
String:
String是Redis中最基本的类型,String类型是二进制安全的,redis的string可以存储任何数据,如图 片、对象等。
- 存储:set k-v
- 获取:get k
- 删除:del k
- strlen k 长度
- getrange k start end 截取
- setrange k index context 替换index开始
- mget k1 k2 获取多个
Hash:
hash类型主要用于存储对象,以key field vlaue的形式存储 hash中的value只能为string不能在value中嵌套hash或list等
hash 也有缺点,hash 结构的存储消耗要高于单个字符串,所以到底该使用 hash 还是字符串,需要根据实际情况再三权衡:
- 存储:hset 哪一个 k-v 直接也可以k修改(替换)
- 获取:
- hget 哪一个 k (获取一个)
- hgetall 哪一个(获取所有的k-v)
- hmget 哪一个 k1 k2 获取多个
- 删除:hdel 哪一个 k
- hlen 哪一个 获取字段个数
- hkeys 哪一个 所有的k
- hvals 哪一个 所有的v
- hexists 哪一个 k 是否存在
- hincrby 哪一个 k int 指定k增加或减少
- hincrbyfloat 哪一个 k float 浮点变化
List:
- 在Redis中可以把list用作栈、队列、阻塞队列
- list中允许存放重复数据
- list中存储的数据有序(指进入顺序<分左右>)
- 存储 (可加多个)
- lpush k-v:左侧加入
- rpush k-v:右侧加入
- 获取:lrange k start end: 获取范围
- 删除:
- lpop 哪一个:删除最左边的,并返回
- rpop 哪一个:删除最右边的,并返回
- lindex 哪一个 index 索引获取数据
- ltrim 哪一个 start end 截取 开始和结束的 其他删除
- llen 哪一个 获取长度
- lrem 哪一个 个数 指定k 指定k删除几个
- lset 哪一个 索引 数据 重置数据
- linsert 哪一个 after/before oldk newk 向某个元素前或后插入一个元素
set:
不保证顺序,集合不能存放重复数据
- 存储:sadd k-vs
- 获取:smembers k
- 删除:srem:k v
- sismember 哪一个 k k是否存在
- scard 哪一个 集合大小
- smembers 哪一个 查看所有元素
- sranmember key 个数 随机抽取几个值
- 逻辑操作
- sdiff 集合1 集合2 sdiff 集合2 集合1 差集
- sinter 集合1 集合2 交集
- sunion 集合1 集合2 并集
Sortedset :
该集合是对set集合的改造,在set集合中加入了一个字段值,用于存储排序规则数据,该数据只负责排序不起其他作用
一方面它是一个 set,保证了内部 value 的唯一性,另一方面它可以为每个 value 赋予一个 score 值,用来代表排序的权重。
内部 score 使用 double 类型进行存储,所以会存在小数点精度问题
例如存储:1 xiao 2sen 3 bo
-
存储:zadd 哪一个 分数 v 可以多个存放
-
获取:
- zrange 哪一个 start end
- zrange 哪一个 start end withscores
- zrevrange 哪一个 start end [ withscores] 从大到小的顺序显示元素信息
-
删除:
- zrem 哪一个 k 删除哪一个
- zremrangebyrank 哪一个 startIndex endIndex 指定索引删除
- zremrangebyscore 哪一个 min max 指定大小删除
-
增加或减少zset中元素的score值
- zincrby key increment value zincrby name 3 xiao
-
zrangebyscores 哪一个 min(max) max(min) limit start end 查询条件的 前两个数据
-
zcard 哪一个 获取个数
-
zcount 哪一个 min max 获取限制的个数
-
获取排名 zrank zrevrank
-
逻辑操作
- zinterstore 新集合 几个集合操作 集合1 集合2 交集 zinterstore aa 2 bb xiao
- zunionstore 新集合 几个集合操作 集合1 集合2 并集 zunionstore bb 2 xiao salary
-
通用
- keys *
- type k 键对应的值的类型
- del k:删除指定的k-v