本文共 2782 字,大约阅读时间需要 9 分钟。
1、字符串
set key1value1 //value1不仅可以是字符串,也可以是整数或者浮点数。
get key1 //获取值
del key1 //删除值
既然value1可以为数值型,因此可以对key1进行类似计数器的运算
incr key1 //将存储的值自增1
decr key1 //将存储的值减去1
incrby key1amount //将存储的值加上整数amount
decrby key1amount //将存储的值减去整数amount
注意:
(1)如果是对值为字符串进行计数器运算,那么将返回一个错误码。
(2)对于不存在的key1,也可以执行计数运算,默认初始值为0。
2、列表
有点像双向队列
lpush listKeyvalue1 //向listKey列左侧中插入value1
lpop listKey //将listKey列左侧弹出一个值
当然相应的还有rpush和rpop
lrang listKey0 -1 //获取listKey中从第一个(0表示)到最后一个的数据(-1)
lindexlistKey 1 //获取listKey的第二个数据(因为0是表示第一个)
ltrim listKey2 -1 //获取listKey从第3个到最后一个的数据(截取部分数据)
3、集合
集合中存放的数据格式与列表类似,只是集合中的数据不允许重复
sadd setKeyvalue1 value2 //将value1、value2加入集合setKey中
srem setKeyvalue1 //将value1移除集合setKey
scard setKey //获取集合setKey中的元素数量
sismember setKey value1 //判断value1是否是集合setKey中的元素
smembers setKey //返回集合中所有元素
srandmember setKey [count] //从集合setKey中随机返回一个或多个元素,count为正数时不允许重复,当为负数时可以重复
spop setKey //随机从集合setKey中移除一个元素,并返回被移除的元素
smove setKey1setKey2 value1 //将元素value1从集合setKey1移动到setKey2
Redis中集合的另一个常用的功能是实现:交并差(注意:只能在单点中执行,集群该功能失效)
sdiff setKey1setKey2 setKey3 //返回setKey1与setKey2、setKey3的差集(所谓差集,即存在于集合setKey1,但是不存在于集合setKey2和集合setKey3中)
sdiffstore destKey setKey1 setKey2 setKey2 //将上述运算的差集存储在集合destKey中
sinter setKey1 setKey2 setKey3 //返回所有集合的交集
sinterstore destKey setKey1 setKey2 setKey3 //将上述集合的交集存储在集合destKey中
sunion setKey1 setKey2 setKey3 //返回所有集合的并集
sunionstore destKey setKey1 setKey2 setKey3 //将上述集合的并集存储在集合destKey中
4、散列
散列,即将上述的列表中的value值改为map,即value值进一步拆分为key和value。
hset hashKey1key1 value1 //将key为key1,value为value1,设置到散列hashKey1中
hget hashKey1key1 //获取散列hashKey1,key为key1的值
hgetall hashKey1 //获取散列hashKey1中所有的key以及其对应的value值
hdel hashKey1key1 //删除hashKey1中key为key1的字段
hlen hashKey1 //返回散列hashKey1包含的键值对的数量
hexists hashKey1 key1 //检查给定键是否存在于散列中
5、有序集合
集合和有序集合的区别:
集合是有序集合的一个特例,其对应的值默认是1,从集合可以和有序集合进行交并差即可看出。
zadd sortSet value1 key1 value2 key2 //添加有序集合sortListKey, key为key1,值为value1;key为key2,值为value2(有序集合会根据value值进行排序的,排序为从小到大,当值相同时,会根据key进行字典排序)
注意:
1、value值必须为浮点数,否则会报:
(error) ERR value is not a valid float
2、之所以叫做有序集合,是因为其中的有序集合的key也是不允许重复的,比如:
zadd zlist 455 tom 34 tom //最终只会添加tom的值为34
3、是value在前,key在后
zrem sortSet key1 //移除有序集合sortListKey中key为key1的字段
zcard sortSet //返回有序集合中包含的成员的个数
zincrby sortSet increment key1 //将有序集合sortListKey中key1的权重加上increment
zcount sortSet min max //返回分值介于min和max个数
zrank sortSet key1 //返回成员key1在有序集合中排名(排名按照分值从小到大)
zrevrank sortSet key1 //返回key1的排名(排名是按照分值从大到小)
zscore sortSet key1 //返回成员key1的分值
zrange sortSet start stop [WITHSCORES] //返回排名介于start和stop之间的成员
zrangebyscore sortSet min max [WITHSCORES] //返回分值介于min和max之间成员(按分值从小到大返回)
zrevrangebyscore sortSet max min [WITHSCORES] //与上面的类似,只是返回的分值介于max和min之间(分值从大到小返回)
zremrangbyrank sortSet start stop //移除排名介于start和stop之间的成员
zremrangbyscore sortSet min max //移除分值介于min和max之间的成员
zinterstore destSet
转载地址:http://lmomi.baihongyu.com/