redis数据类型
Posted 小~虎
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis数据类型相关的知识,希望对你有一定的参考价值。
redis一共分为5种基本数据类型:String、Hash、List、Set、Zset
String类型(一)
String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串、数值等等、
set和get方法:
设置值:set name bhz 取值 get name (说明 设置name多次会覆盖)
删除值:del name
使用setnx (not exist)
name 如果不存在进行设置,存在就不需要进行设置,返回0
使用setex (expired)
setex color 10 red 设置color的有效期为10秒,10秒后返回nil (在redis里nil表示空)
使用setrange 替换字符串:
set email [email protected]
setrange email 10 ww (10表示从第几位开始替换,后面跟上替换的字符串)
String类型(二)
使用一次性设置多个和获取多个值的mset,mget方法:
mset key1 bhz key2 bai key3 28 :对应的mget key1 key2 key3 方法
对应的也有msetnx 和 mget方法。
一次性设置和取值的getset方法;
set key4 cc
getset key4 changchun 返回旧值并设置新值的方法。
incr和decr方法:对某一个值进行递增和递减
incrby和decrby方法:对某个值进行指定长度的递增和递减 incrby key 【步长】
append [name]方法:字符串追加方法
strlen [name]方法:获取字符串的长度
Hash类型
Hash类型是String类型的filed和value的映射表,或者说一个String集合。它特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。
形如:hset myhash filed1 hello(含义是hset是hash集合,myhash是集合的名字 filed1是字段名 hello是其值)使用hget myhash field1 获取内容 ,也可以存储多个值。hmset可以进行批量存储多个键值对;hmset myhash sex nan addr beijing,也可以使用hmget进行批量获取多个键值对。
同样也有hsetnx,和setnx类似;
hincrby和hdecrby 集合递增和递减
hexists 是否存在key,如果存在返回,不存在返回0
hlen 返回hash几个里的所有的键数值
hdel 删除指定hash的field
hkeys 返回hash里所有的字段
hvals 返回hash的所有value
hgetall 返回hash里所有的key和value
List类型
List类型是以一个链表结构的集合,主要功能有push、pop、获取元素等。更消息的说,List类型是一个双端链表的结构,
lpush方法:从头部加入元素,先进后出 lpush list1 "hello"
rpush方法:从尾部加入数据,先进先出 rpush list2 "hangzhuo"
linsert方法:插入元素 linsert list2 before [集合元素] [插入元素]
Set和Zset
set集合是String类型的无序集合,对集合可以取交集,并集,差集。Zset是有序的。
sadd,添加
srem 删除
spop 随机删除
Redis高级命令及特性
返回满足的所有键keys * (可以模糊匹配)
exists是否存在指定的key
expire设置某个key的过期时间,使用ttl查看剩余时间
persist 取消过期时间
select 选择数据库 数据库为0到15 默认进入的是0数据库
move [key] [数据库下标] 将当前数据中的key转移到其他数据库中
randomkey 随机返回数据库里的一个key
rename 重命名key
以上是关于redis数据类型的主要内容,如果未能解决你的问题,请参考以下文章