redis有5大数据类型:
- String(字符串)
- Hash(哈希,类似java的Map)
- List(列表)
- Set(集合)
- Zset(sorted set,有序集合)
字符串(String):是最基本的类型,String类型是二进制安全的,意思是:redis的String可以包含任何数据,比如:jpg图片或者序列化的对象;一个redis中字符串value最多可以是512M;
哈希(Hash):是一个键值对集合,是一个string的类型的field和value的映射表,特别适合用于存储对象;
列表(List):字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或者尾部;
集合(Set):是String类型的无序集合,是通过HashTable实现的;
有序集合(Zset):和set一样是string类型元素的集合,且不允许重复的成员;不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序,zset的成员是唯一的,但是分数(score)却可以重复;
用法
1、key
(1)keys :查看所有key
(2)exists key:判断key是否存在
(3)move key db:把当前库的key移到redis的某个库中,当前库就没有该key了
(4)expire key 秒钟:给当前key设置过期时间
(5)ttl key:查看key还有多久过期,-1表示永不过期,-2表示已过期
(6)type key:查看key是什么类型
(7)del key :删除某个键
2、string
(1)set key value :设置值
(2)get key :取值
(3)del key :删除某个键
(4)append key value :在某个键的值上添加内容
(5)strlen key :某个键对应的内容的长度
(6)incr key 和 decr key :逐步加1 和 逐步减 1,值必须为数字,才能进行此操作
(7)incyby key value 和 decrby key value :逐步增加value 和 逐步减少 value
(8)getrange key start end (左闭右闭) 和 setrange key start value :获取某个键对应的值的下标为【start,end】范围的值 和 在某个键对应的值的start下标开始设置value值
(9)setex key 秒值 value: 设置过期时间,set with expire
(10)setnx key value: 在set值时,先判断key是否存在,如果存在,则不设置了;如果不存在则设置key和value
(11)mset key value key value… :一次性设置多个键值对
(12)mget key key key … :一次性获取多个key的值
(13)msetnx key value key value…:先判断key是否存在,如果有一个key存在,则set失败,只有当key都不存在时,才只能set成功;