数据类型都针对键值对中的【值】进行定义的。
1.string类型(字符串类型)
-
get、set、setnx、incr、incrby、decr、decrby
-
incr、incrby、decr、decrby:只能针对整数类型的数据进行使用。
-
incr命令,它是原子操作,用来生成数据库表的自增主键,是非常安全且高效。
//以下代码不是一个原子性操作,就可能存在线程安全问题。 int i = 10; i++ ; System.out.println(i);
- incr命令的使用场景:分布式数据库中订单ID的生成。
2.hash类型(散列类型)
- hset、hget、hdel、hmget、hmset
- hash类型和string类型区别
- hash类型适合于增删改操作。
- string类型适合于查询操作。string类型存储对象,需要进行对象转换为json串进行存储。
3.list类型(队列类型)
-
适合于只对list列表两端进行操作的场景。
-
list类型存储的数据特点:有序可重复(指的是插入顺序,而不是自然排序顺序)。
-
lpush、lpop、rpush、rpop、lrange
-
可以用来作为消息队列去使用
-
可以用来实现商品评论表
key的设计很重要 1、使用谁作为key。使用谁查询方便 2、key的定义,一定要有意义。 3、key的定义举例: item:1 {id:1,name:'zhangsan'} item:pl:1 {} {} {}
4.set类型(集合类型)
-
set类型存储的数据特点:无序不重复。
-
sadd 、srem、smembers
-
可以进行多集合操作:差集操作、交集操作、并集操作
- sdiff、sinter、sunion
5.zset类型(有序集合类型、sortedset)
- zset类型存储的数据特点:不重复、有序。
- 底层还是一个set集合,但是该集合中给每个member设置一个score,通过score进行排序。
- zadd、zrem、zrange、zscore
- 使用场景:销售排行榜
- 销量作为分数
- 销售人员或者商品作为member