redis数据类型介绍
redis是key-value类型的数据库,包括五种数据类型的变量,分别是string,list,set,zset,hash,下面简单的介绍下各个数据类型的属性和用法。
string:
set:设置key-value
get:取得设置的key的值
setnx:当设置的变量存在的时候不能再设置此变量的值
setex:为设置的变量提供超时时间
setmx:一次设置多个变量的值
getmx:一次性取出多个变量的值
strlen:查看某个key的长度
append:给key的值后面追加内容
setrange:对key的值进行替换。需要注意的是在替换的过程中,如果替换的原来值的数量超过我们了原来值的数量那么就就行全部替换,否则保留原来的变量剩下的部分。
getrange:取变量的第几个字符
incr:对值的结果加1
incrby:对值的结果加上相应的数值
examples:
set name hello
get name
setnx name hello
setnx name xiaoli //此时不能够在进行name变量的设置,因为name已经存在了变量的值
setex name 10 hello //将变量name的内容的超时时间设置为10秒,当10秒过后name中的内容为空。
append name hello //如果原来name的value为hello的话,那么追加之后就是hellohello。
strlen name //返回值是一个数字,数字表示的是这个变量的长度
mset name hello age 20 //同时设置两个变量
mget name age //同时取出两个变量的值
setrange name 6 hi //如果原来的name为hellohello的话,现在进行替换,从第七个字符开始进行替换,新的结果为 hellohhilo,注意如果给的数量不够的话,后面的字符给予保留。
getrange name 0 5 //后去name的value的前六个字符。
incr age //每次对age的结果进行加1操作
incrby age 5 //每次对age的结果进行加5操作
--------------------------------------------------------------------------------
hash:hash作为一个redis的数据类型,我们可以把他看做是一个表的形式的存在。hash的一些操作非常类似于string类型的操作,下面开始。
hset:设置hash表中的key的值
hget:获取hash表中的key的值
hmset:设置hash表中多个key的值
hmget:获取hash表中多个key的值
hexists:判断一个字段在hash表中是不是存在
hdel:对hash表中的一个字段进行删除
hlen:查看hash表中字段的数量
hincrby:对hash表中的某个字段进行加的操作
hgetall:获取hash表中的全部的数据
examples:
hset set1 name hello //设置名字为set1的hash表其中一个字段叫做name,name的值为hello
hget set1 name //获取set1中的name变量的值
hmset set1 name hello age 20 //设置多个变量
hmget set1 name age //获取多个变量
hincrby set1 age 5 //对set1中的age变量的结果每次做加5操作
hexists set1 age //判断age变量在set1中是否存在
hgetall set1 //获取set1中的多有变量以及变量的值
--------------------------------------------------------------------------------
list类型,在list中它的每一个元素都是一个string类型。在list中既可以从上面插入数据,也可以从下面插入数据。他相当于是一个双向的链表。下面开始介绍下list的应用。
lpush:从list的顶端开始插入数据
rpush:从list的末端开始插入数据
lrange:对list中的数据进行输出
lrem:对list中的数据删除
linsert:向list中插入一条数据
lset:对list中的某个数据进行修改
ltrim:保留list中某个范围的数据
lindex:查看下标为某个数值的数据
rpop:从list的末尾弹出一个数据
rpoplpush:从一个list中弹出一个数据并且把这个数据从上面压入到另外的一个list中
llen:查看list中有多少元素
examples:
lpush list1 one //从list1的上面压入一个数据
lpush list1 two
lpush list1 three
lrange list1 0 -1 //显示list1中的全部的数据,其中0代表第一个数据,-1代表的是最后一个数据
结果为:three two one
rpush list1 one //从list1的末尾压入一个数据
rpush list1 two
rpush list1 three
lrange list1 0 -1 //显示list1中的全部的数据,注意lpush和rpush的区别
输出结果 one two three
lrem list1 1 one //在list1中删除一个one
ltrim list1 1 -1 //在list1中保留下标为1的到最后
lrange list1 0 -1 //显示list1中的所有的元素
rpop list1 //从list1的尾部弹出一个数据
rpoplpush list1 list2 //从list1尾部弹出一个数据,然后添加到list2的最上面去。
lindex list1 1 //查看list1中下标为1的元素是什么
llen list1 //查看list1中有几个元素
--------------------------------------------------------------
set是string的无序集合。对几个集合我们可以做取并集,交集,差集等。下面开始介绍。
sadd:向集合中添加元素
smembers:查看几个中的所有的元素
srem:删除一个集合中的某个元素
sismember:判断一个元素是不是属于一个集合
spop:在集合中随机的弹出一个元素
sdiff:取两个集合的差集
sinter:取两个几个的交集
sunion:取两个几个的并集
sdiffstore:取两个集合的差集并且存储到某个集合中去
sinterstore:取两个集合的交集并且存储到某个集合中去
sunionstore:取两个集合的并集并且存储到某个集合中去
smove:从一个集合中移动一个元素到另外的集合中去
srandmember:随机的取出一个元素
scard:统计几个中有多少个元素
examples:
sadd set1 one //向集合set1中添加一个one元素
sadd set1 two
sadd set1 three
smembers set1 //查看集合set1中的所有的元素
srem set1 one //将set1中的one元素移除掉
sismember set1 one //判断one是不是set1中的元素
spop set1 //在set1中随机的弹出一个元素
sdiff set1 set2 //比较set1和set2的差集
sdiffstore set3 set1 set2 //比较set1 和set2的差集并且将结果保存到set3中去
sinter set1 set2 //比较set1和set2的交集
sinterstore set3 set1 set2 //将set1和set2的交集保存到set3中去
smove set1 set2 hello //将hello这个元素从set1中移到set2中去
srandmember set1 //随机的取一个元素从set1中
scard set1 //判读set1中有多少个元素
------------------------------------------------------------------------
zset是有序的集合,可以按照新的值进行排序
zadd:在有序集合中添加元素
zrange:显示有序集合中的所有的元素
zrem:删除有序集合中某个元素
zincrby:增加某个元素的序列号
zrank:返回某个元素的下标
zrevrange:反向的按照下标输出集合中的元素
zrevrank:反向的输出有序集合中的元素的下标
zcount:取出几个中元素在两个下标之间的元素的个数
zcard:取出有序几个的元素的个数
zremrangebyrank:删除在两个下标之间的元素
zremrangebyscore:删除指定元素按照顺序排序
examples:
zadd zset1 one //向有序几个中添加one元素
zadd zset1 two
zadd zset1 three
zrange zset1 0 -1 withscores //按照排序显示中zset1中的所有的元素
zrem zset1 one //删除zset1中的one元素
zrank zset1 one //返回one的下标
zcount zset1 2 4 //查看下标在2到4中间的共有多少个元素
zcard zset1 //查看zset1中一共有多少元素
zremrangebyrank zset1 1 1 //删除下标为1的元素
zremrangebyscore zset1 1 1 //删除排序序列号为1的元素
好了,redis的数据类型就先写这么多了。。。。。