Redis一共分为五种基本数据类型:String、Hash、List、Set、ZSet
1.String类型
String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等。
1.1 set
set key value:该命令表示设置键key的值为value,设置多次key的值会把之前设置的值覆盖掉
1.2 get
get key:该命令表示获取键key的值
1.3 del
del key:该命令表示删除键名为key的键值对
1.4 keys
keys *:该命令表示获取所有的key
1.5 setnx
setnx key value:该命令表示如果key不存在进行设置,存在就不需要进行设置了,返回0
1.6 setex
setex key seconds value:该命令表示设置key的有效期为seconds秒,seconds秒后返回nil(在redis里nil表示空)
1.7 setrange
setrange key offset value:该命令表示设置key从第几(offset)位开始替换,后面跟上替换的字符串
setrange email 9 @163.com
1.8 mset
mset key1 value1 key2 value2:该命令表示一次性设置多个值
mset name zhangsan age 18
1.9 mget
mget key1 key2:该命令表示一次性获取多个值
1.10 getset
getset key value:该命令表示返回旧值并设置新增的方法
1.11 incr
incr key:该命令表示对一个值进行递增
1.12 decr
decr key:该命令表示对一个值进行递减
1.13 incrby
incrby key:该命令表示对一个值进行指定长度递增
1.14 decrby
decrby key increment:该命令表示对一个值进行指定长度递减
1.15 append
append key value:该命令表示对一个值进行字符串追加
1.16 strlen
strlen key:该命令表示获取字符串的长度
2.Hash类型
Hash类型是String类型的field和value的映射表,或者说是一个String集合,它特别适合存储对象。相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。
2.1 hset
hset key field value:该命令中hset表示是hash集合,key是集合名字,field是字段名,value是其值。例如往user集合中插入name字段和该字段所对应的值zhangsan:
hset user name zhangsan
2.2 hget
hget key field:该命令表示从key集合中取出field字段所对应的字段值。例如从user集合中取出name字段所对应的值:
hget user name
2.3 hmset
hmset命令可以进行批量存储多个键值对:
hmset user id 1 name zhangsan age 25
2.4 hmget
hmget命令进行批量获取多个键值对:
hmget user id name age
2.5 hsetnx
hsetnx key field value:该命令表示如果集合(key)中已经存在对应的字段(filed),则不会进行设置返回0;如果集合(key)中不存在对应的字段(filed),则会进行设置。
如下所示由于当前user集合中已经存在“id”字段,则再次对user集合中的id字段进行设置会失败返回0:
hsetnx user id 2
2.6 hexists
hexists key field:该命令表示如果集合(key)存在相应的field字段,如果存在则返回1,不存在则返回0。
hexists user id
2.7 hlen
hexists key:该命令表示获取集合(key)里的所有键值数
2.8 hdel
hdel key field:该命令表示删除集合(key)里指定的field字段
2.9 hkeys
hkeys key:该命令表示返回集合(key)所有的字段
2.10 hvals
hvals key:该命令表示返回集合(key)所有value
2.11 hgetall
hgetall key:该命令表示返回指定集合中所有的key和value
3.List类型
List类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,list的设计非常简单精巧,即可以做为栈,又可以作为队列,满足绝大多数需求。
3.1 lpush
lpush key value:该命令表示从头部加入元素(栈),先进后出。key表示栈的名称,value表示往栈里面搁的值。
lpush list1 hello
lpush list1 world
3.2 lrange
lrange key start stop:该命令表示从头部的start位置开始取出元素
# 表示从头取到末尾
lrange list1 0 -1
3.3 rpush
rpush key value:该命令表示从尾部加入元素(队列),先进先出
rpush list2 hello
rpush list2 world
取出队列list2里面的元素:
3.4 linsert
linsert key before value1 value2:该命令表示在栈key的value1元素上面(before)插入元素value2
linsert list3 before one three
3.4 lset
lset key index value:该命令表示在栈key的index位置处的值替换为value
lset list3 1 four
3.5 lrem
lrem key count value:该命令表示在栈key的值为value的元素删除count次
lrem list3 1 four
3.6 ltrim
ltrim key start stop:该命令表示保留指定key的下标为start和stop范围内的数据
ltrim list 2 3
3.7 lpop
lpop key:该命令表示从list头部删除元素,并返回删除的元素
lpop list
3.8 rpop
rpop key:该命令表示从list尾部删除元素,并返回删除的元素
rpop list
3.9 rpoplpush
rpoplpush source destination:该命令表示第一步从source尾部删除元素,然后再将该元素插入到destination头部
rpoplpush list1 list1
3.10 lindex
lindex key index:该命令表示返回名称为key的list中index位置的元素
lindex list1 0
3.11 llen
llen key:该命令表示返回元素的个数
llen list1
4.Set类型
Set集合是String类型的无序集合,Set是通过Hashtable实现的,对集合我们可以取交集、并集、差集。
4.1 sadd
sadd key value:该命令表示向名称为key的Set集合中添加元素
特别提示:Set集合不允许重复元素
4.2 smembers
smembers key:该命令表示Set集合中的元素
4.3 srem
srem key member:该命令表示删除Set集合中的元素member
4.4 spop
spop key:该命令表示随机删除Set集合中的元素
4.5 sdiff
sdiff key1 key2:该命令表示返回俩个集合的不同元素(哪个集合在前面就以哪个集合为标准)
sdiff set2 set1
4.6 sdiffstore
sdiffstore key3 key1 key2:该命令表示将返回的不同元素存储到另外一个集合里
特别提示:这里是把key1和key2的不同元素(以key1为准)存储到key3集合里
sdiffstore set3 set2 set1
4.7 sinter
sinter key1 key2:该命令表示将返回集合的交集
4.8 sinterstore
sinterstore key3 key1 key2:该命令表示将返回key1和key2集合的交集,将结果存入key3
4.9 sunion
sunion key1 key2:该命令表示取并集
4.10 sunionstore
sunionstore key3 key1 key2:该命令表示将返回key1和key2集合的并集,将结果存入key3
4.11 smove
smove key1 key2 member:该命令表示将key1集合里面的member元素移到到key2集合
4.12 scard
scard key:该命令表示查看集合里面的元素个数
4.13 sismember
sismember key member:该命令判断某元素是否为集合中的元素,返回1代表的是集合中的元素,0代表不是
4.14 srandmember
srandmember key:该命令表示随机返回一个元素
5.ZSet类型
ZSet集合是一个有序集合
5.1 zadd
zdd key score value:该命令表示向有序集合中添加一个元素,该元素如果存在,则更新顺序
特别提示:在重复插入的时候会根据顺序属性更新
5.2 zrange
zrange key start stop:表示查看有序集合中的元素
如果上述命令中添加withscores,表示在查看有序集合中的元素时同时输出元素的下标
5.3 zrem
zrem key member:表示删除名称为key的zset有序集合中的元素member
5.4 zrangebyscore
zrangebyscore key min max:找到名称为key的zset有序集合中分数在指定区间的元素并返回
zrangebyscore zset1 0 1
5.5 zremrangebyscore
zremrangebyscore key min max:表示删除名称为key的zset有序集合中分数在指定区间的元素
5.6 zrank
zrank key member:表示返回指定元素在有序集合中排序完以后的序号
5.7 zcard
zcard key:表示返回有序集合中的元素个数
5.6 zcount
zcount key min max:表示返回有序集合中score在给定区间中的元素个数