Redis(二)五大数据类型

1、String

set key value #设置key-value
get key #获取key的value
exists key #key是否存在
append key value #追加字符串,若key不存,相当于set key value
strlen key #获取字符串长度
incr key #当前key的value加1
decr key #当前key的value减一
incrby key 10 #当前key加10
decrby key 10 #当前key减10
getrange key 0 3 #字符串范围 (getrange key 0 -1 获取全部字符串)
setrange key 1 xx #替换指定位置开始的字符串
setex key second value #(set with expire)设置过期时间
setnx key value #(set if not with exists )不存在再设置 (分布式锁中常使用)
mset key1 v1 key2 v2 #批量设置
mget key1 key2 key3 #批量获取
msetnx key1 v1 key2 v2 #不存在再设置(批量 原子性操作 一起成功 一起失败)
getset key value #先获取原值再设置新值

2、List

redis中,可以将list用作栈、队列、阻塞队列的数据结构
所有list命令都是以l开头

lpush key v1 v2 ... #将一个值或多个值插入列表的头部(左)
rpush key v1 v2 ... #将一个值或多个值插入列表的尾部(右)
lrange key start end #用过区间获取具体的值 (0 -1 区间获取全部值)
lpop key #移除列表头部第一个值(左)
rpop key #移除列表尾部第一个值(右)
lindex key index #通过索引获取值
llen key #获取列表长度
lrem key count value #移除list集合中指定个数的value 精确匹配
ltrim key start stop #通过下标截取指定长度,list已经改变,只剩下截取后的元素
rpoplpush key otherkey #移除列表中最后一个元素,并将它插入另一个列表头部
lset key index value #将列表中指定下标的值替换为另外一个值,更新操作 (如果列表或索引不存在 会报错)
linsert key before v1 v2 #在v1前插入v2
linsert key after v1 v2 #在v1后插入v2

小结:

  • 他实际上是一个链表,before after left right 都可以插入值
  • 如果key不存在,创建新的链表
  • 如果key存在,新增内容
  • 如果移除了所有值,空链表,也代表不存在
  • 在两边插入或改动值,效率最高!中间元素,相对来说效率会低一点!
  • 消息排队 消息队列(Lpush Rpop) ,栈(Lpush Lpop)

    3、Set

    set中的值不能重复
    sadd key value #添加元素
    smembers key #查看指定set中所用元素
    sismember key value #判断某一个值在指定set中是否存在
    scard key #获取set中的内容元素个数
    srem key value #移除set中指定元素
    srandmember key count #随机选出指定个数的成员
    spop key #随机移除元素
    smove oldkey newkey member #将一个指定的值,从一个set移动到另一个set
    sdiff key... #获取多个set差集
    sinter key... #获取多个set交集 (共同好友、共同关注)
    sunion key... #获取多个set并集
    应用场景:微博,将用户所有关注放入一个set,粉丝放入一个set
    -> 共同关注、二度好友、相互关注…..

4、Hash

Map集合 key-(key-value)

hset key field value #存入一个具体键值对
hget key field #获取一个字段值
hmset key field value field1 value1 ... #存入多个具体键值对
hmget key field field1 ... #获取多个字段值
hgetall key #获取全部数据
hdel key field #删除hash指定的key字段,对应value也就没有了
hlen key #获取hash中字段数量
hexists key field #判断hash中某个字段是否存在
hkeys key #获取hash中全部key
hvals key #获取hash中全部value
hincrby key field 1 #hash中指定key的value加1
hdecrby key field 1 #hash中指定key的value减1
hsetnx key field value #如果hash中指定key不存在则创建,存在则创建失败

hash应用场景: 变更的数据,比如用户信息,以及其他经常变动的信息;hash更加适合对象的存储,String更适合字符串的存储。

5、Zset

有序集合,在set的基础上增加了一个排序的值

zadd key score value #添加元素
zrange key 0 1 #通过索引区间返回有序集合指定区间内的成员 (0 -1)返回全部
zrangebyscore key min max #排序并返回 从小到大 例如:zrangebyscore key1 -inf +inf (-inf:负无穷 +inf:正无穷 )
zrevrange key 0 -1 #排序并返回 从大到小
zrem key value #移除指定元素
zcard key #获取有序集合中的数量
zcount key start stop #获取指定区间中的成员数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值