Redis中的五种基本数据类型

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在给定区间中的元素个数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值