Redis 五大数据类型

最近开始学习Redis ,一种非关系数据库,支持内存存储、持久化(rdb,aof)效率高,可用于高速缓存。
刚开始先从存储类型开始学习。
Redis 共有16个数据库,编号从0~15,可以用select切换数据库,flushdb用于清空当前的数据库。

一、String 字符串类型
可以存储序列化后的对象,图片,或者二进制后的数据,最多可存512M数据。
set key mh 创建字符串
append key “hello” 在字符串后添加
keys * 显示所有的数据的key
exist key 查询该字符串是否存在
strlen key 该字符串长度
set key1 1
incr/decr key1 key1的值进行加一/减一操作
incrby/decrby key1 10 key1的值进行加十/减十操作
getrange key 0 -1 查看key1的子字符串内容
setex key3 30 2 创建一个生存时间为30s的字符串
setnx key3 2 不存在key3时才设置(分布式锁,可用expire设置时间避免死锁)
mset mget 可用于批量设置获取,当然也有msetnx
getset key1 不存在时才创建该字符串

可以看出String 的一系列操作,方便设置计数器,或者统计多单位的数量,点击量。

二、List 利用链表存储,可重复,每个元素都有对应的下标,可以充当栈或者队列。结构类似于双向链表。
lpush list abcd 从左边插入
lrange list 0 -1 从左边遍历
lpop list 从左边弹出首元素
同样也有rpush、rrange
lindex list 0 通过下标获取值
lrem list a one 移除一个指定值,可指定次数
ltrim list 1 2 保留下标12元素,清除两边
rpoplpush 移除列表最后的元素并移动到新的列表中
lset list 0 mh 若不存在更新会报错
linsert list before/after 插入列表某一元素前或者后面

该类型可以用来实现消息队列

三、Set 集合类型(不能重复、无序)
sadd set “mh” 向集合中添加元素
smembers set 返回该集合所有元素
sismember set “mh” 查询该元素是否存在
scard set 返回该集合的数量
srandmember set 在该集合随机选出一个(可用于抽奖)
spop set 随机弹出一个元素
smove 删除某元素

集合可以进行交集并集差集操作
SDIFF 差集
SUNION 并集
SINTER 交集

社交软件中的共同关注是交集,也可用集合求二度好友

四、Hash 哈希类型(适合对象的存储)
就相当于一个map集合
hset
hget
hgetall
hdel
hlen
hexists
hkeys
hvals
hincrby
hdecrby
hsetnx
很容易通过之前的学习看出他们的意思,其实语法都一样的

五、Zset (有序集合)
在set 的基础上加一个score值,以此值排序
zadd
zrange 遍历输出
zrangebyscore 按照score从小到大输出
zrevrange 从后到前输出
zrem 删除
zcard 返回集合内元素数量
zrevangebyscore 按照score从大到小输出
zcount 可获取指定score区间的成员数量

可以实现排行榜

下次更新三种特殊类型,即Geospatial,Hyperloglog,Bitmaps。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值