十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“redis有哪些数据类型”,在日常操作中,相信很多人在Redis有哪些数据类型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis有哪些数据类型”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
目前成都创新互联公司已为上千的企业提供了网站建设、域名、虚拟主机、网站托管、服务器托管、企业网站设计、陆良网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
Redis数据类型
redis的命令是忽略大小写的
一、 String类型
赋值
> set name 王五
> select 1
> set name zhangsan
> get name
设置/获取多个键值
> mset age 25 gender male city 杭州
> get age
> mget age city
取值再赋值
> getset s2 111
> getset s2 222
尾部追加值
> append name hello
删除
> del s2
数值增减
递增
当存储的字符串是整数时,使用命令incr使当前键值加1,返回递增后的值
> incr num
指定步长
> incrby num 2
递减
> decr num
> decrby num 2
应用场景,存储商品信息
> incr items:id
二、Hash类型
hset命令不区分插入和更新操作,插入操作返回1,更新返回0
一次设置一个字段
> hset user name lizi
一次设置多个字段
> hmset user age 25 gender male
当字段不存在时赋值,存在则不执行任何操作
> hsetnx user address hangzhou
一次获取一个字段
> hget user name
一次获取多个字段
> hmget user name age
一次获取所有字段值
> hgetall user
删除一个或多个字段,返回被删除的字段个数
> hdel user age address
数字增加
> hset user age 20
> hincrby user age 2
> hget user age
判断字段是否存在
> hexists user age
只获取字段名或字段值
>hkeys user
>hvals user
获取字段数量
> hlen user
应用场景,存储商品信息
> hmset items:1001 id 1001 name iphonex price 1999 color black
> hmset items:1002 id 1002 name iphonex price 1999 color black
获取商品信息
> hget items:1001 name
> hgetall items:1001
三、List类型
向列表左边添加元素
> lpush list 0 9 8
> lpush list:1 1 2 3 4
向列表右边添加元素
> rpush list:1 5 6 7
查看列表
> lrange list:1 0 3
> lrange list:1 0 -1 读所有
从列表两端弹出元素,返回移除的元素值
> lpop list:1
> rpop list:1
获取列表中元素的个数
> llen list:1
删除列表中指定的值
LREM命令会删除列表中前count个值为value的元素,返回实际删除的元素个数。根据count值的不同,该命令的执行方式会有所不同:
当count>0时, LREM会从列表左边开始删除。
当count<0时, LREM会从列表后边开始删除。
当count=0时, LREM删除所有值为value的元素。
> lrem list:1 1 5
> lrem list:1 -1 5
> lrem list:1 0 5
获取指定索引的元素值,索引从0开始
> lindex list:1 0
设置指定索引的元素值
> lset list:1 0 11
保留列表指定范围的元素
> ltrim list:1 0 2
向指定元素值的前后插入元素,返回列表的元素个数
> linsert list:1 before 2 10
> linsert list:1 after 2 10
将一个元素从一个列表移到另一个列表
> rpoplpush list:1 list:2
应用场景,商品评论
> lpush items:comment:1001 '{"comment":"good product","date":1430295077289}'
> lpush items:comment:1001 '{"comment":"bad product","date":1430295078888}'
四、 Set类型,元素不重复,无序
添加
> sadd set1 a b c
删除
> srem set1 b
获取
> smembers set1
判断元素是否存在,存在返回1,不存在返回0
> sismember set1 a
差集运算,属于A但不属于B的元素构成的集合,A-B
> sadd setA 1 2 3
> sadd setB 2 3 4
> sdiff setA setB
> sdiff setB setA
交集,A ∩ B
> sinter setA setB
并集,A ∪ B
> sunion setA setB
获取元素的个数
> scard setA
随机弹出一个元素
> spop setA
五、SortedSet类型,zset,有序
添加
> zadd english:scoreboard 80 zhangsan 70 lisi 90 wangwu
> zadd english:scoreboard 60 maliu
修改
> zadd english:scoreboard 85 zhangsan
获取元素的分数
> zscore english:scoreboard maliu
删除元素
> zrem english:scoreboard maliu
获取排名在某个索引范围的元素值列表
按照分数值从小到大排列
> zrange english:scoreboard 0 1
> zrange english:scoreboard 0 -1
> zrange english:scoreboard 0 -1 withscores
按照分数值从大到小排列
>zrevrange english:scoreboard 0 -1
>zrevrange english:scoreboard 0 -1 withscores
获取指定分数范围内的元素
> zrangebyscore english:scoreboard 80 90 withscores
> zrangebyscore english:scoreboard 80 90 withscores limit 1 2
增加某个元素的分数,返回更改后的分数
> zincrby english:scoreboard 5 wangwu
获取集合中元素的数量
> zcard english:scoreboard
获取指定分数内的元素个数
> zcount english:scoreboard 80 90
按照排名指定索引范围删除元素
> zremrangebyrank english:scoreboard 0 1
按照分数范围删除元素
> zremrangebyscore english:scoreboard 80 90
获取元素的排名
从小到大
> zrank english:scoreboard lisi
从大到小
> zrevrank english:scoreboard lisi
应用场景,商品销售排行榜
> zrank items:sellsort 9 1001 10 1002
> zincrby items:sellsort 1 1001
> zrevrange items:sellsort 0 9 withscores
设置key的生存时间
> set test hello
> expire test 5
> ttl test 【-1没有设置存活时间,-2已删除】
> get test
> persist test
匹配查询key
> keys user*
数据库中是否存在key
> exists user
删除key
> del user
重命名key
> rename user userabc
返回数据类型
> type setA
到此,关于“Redis有哪些数据类型”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!