Redis一共分5中基本数据类型: String、Hash、List、Set、ZSet
String类型
String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如对序列化的对象进行存储,比如一张图片进行二进制存储,比如一额简单的字符串数值等等。
- 设置值 set name bts(多次设置name的值,后一次会覆盖前一次)
- 取值 get name
- 删除值 del name
- setnx name btsNew; nx的意思就是not exists,不覆盖赋值。
- seteex color 10 red;ex的意思是expired,设置有效期,超过10秒后get color 返回控制nil
- 一次性获取和设置多个值mset,mget
- 一次性设置值和取值getset name btsNew ; 把原存储的bts取到并且重新赋值为btsNew
- incr和decr:对某个值进行递增或递减
- incrby和decrby:对某个值进行指定步长的递增或递减
- append;追加字符串 append name Smart后,get name 显示 btsSmart
- strlen key;获取字符串长度
Hash类型
hash类型是string类型的field和valur的映射表,或者说是一个string集合。特别适合存储对象,相比而言,对象存在hash中比在string占用的空间要小,并方便存取整个对象。
形如:hset myhash field1 hello (含义:hset是声明hash集合,myhash是集合名字,field1是字段名,hello是值);使用hget myhash field1获取内容,也可以存储多个值。hmset可以批量存储多个键值对;hmset myhash sex 1 addr beijing,可以使用hmget 获取多个键值对。同样也有hsetnx、hsetex。
- hincryby和hdecrby 集合递增和递减
- hexists 是否存在key,如果存在返回,不存在返回0
- hlen返回hash集合里所有的键数值
- hdel删除指定的hash的field
- hkets 返回hash的所有value
- hgetall 返回hash里所有的key和value
List类型
list类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。list类型是一个双端链表结构,可进行集合的头部或者尾部添加删除元素,可以作为栈,又何以作为队列。满足绝大多数需求
- lpush 头部加入,先进先出 形如:lpush liist1 sgm lpush list1zzt
- rpush 尾部加入,先进先出
- lrange 获取队列元素
- linsert 插入元素 形如: insert list3 before {集合已有的元素} {插入的元素}
- lset 将制定下标的元素替换掉
- lrem 删除元素,返回删除个数 形如 lrem list 2 “b” 删除第二个b lrem list 2 -1 全部删除
- ltrim 保留制定key的值范围内的数据 ltrim list 2 4 也可以有-1、-2等表示倒数第一个、倒数第二个
- lpop 从list头部删除元素,并返回删除元素
- rpop 从list尾部删除元素,并返回删除元素
- rpoploush 同尾部删除元素,并从头部加入刚才删除的元素
- lindex 返回指定list中指定下标位置的元素
- llen 返回元素个数
set类型
set集合是String类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集、并集、差集
- sadd 想名称为ket的set中添加元素 set集合不允许重复元素,smembers 查看set集合的元素
- srem 删除集合指定的元素
- spop 随机删除set集合中的一个元素并返回
- sdiff 返回集合间不同的元素,以第一个为标准去比较其他的 例如
key1 = {a,b,c,d} key2 = {c} key3 = {a,c,e} SDIFF key1 key2 key3 = {b,d} (取key2与key3的并集再取key1的差集)
- sdiffstore 将返回的的不同的元素存在另一个集合里 例如sdiffstore key3 key1 key2(以key1为标准,取key1和key2不同的元素存到key3中)
- sintet 返回集合的交集
- insterstore 返回集合的交集并存在另一个集合中
- sunion 取并集
- sunionstore 取并集并存在另一个集合中
- smove 从一个set集合移动到另一个set集合 例如 smove set1 set2 a
- scard 查看集合元素个数
- sismembers 判断某个元素是否是集合中的元素
- srandmember 随机返回一个元素
zset类型
- zadd 向有序集合中添加一个元素,该元素如果存在,则更新顺序 例如 zadd zset1 5 five (5表示顺序)
- zrange 按照顺序显示zset (场景rank相关的应用)例如 zrange zset1 0 5 withscores 或者 zrange zset1 0 -1 withscores
- zrem 删除指定zset中的指定元素
- zincrby 以指定值去自动递增或减少
- zrangebyscore 找到指定范围的数据返回
- zremrangebyrank 根据下标范围删除
- zrenrangebuscore 删除范围内的所有元素