redis的数据类型

1.string类型

set name zhangsan    设置一个值
get name            获取指定的key值                
mset                批量设置key-value,例如:mset no 201611 address shandong remark goodstudent
mget                批量获取            
append                在后面追加
decr                减去1,例如decr age
incr                加1,例如incr age
decrby                decrby age 30
incrby                incrby age 3
getrange            getrange tel 0 3 包前也包后
setrange            替换指定位置的值
strlen                获取指定key的值的长度,注意:字节的长度

2.list类型
lpush        左进,如果没有队列会创建指定名称的队列,队列长度加1
rpush        右进,如果没有队列会创建指定名称的队列,队列长度加1
lpop        左弹出该元素的值,队列长度减1
rpop        右弹出该元素的值,队列长度减1
lrange        获取指定范围内的元素,例如:lrange studentname 0 -1,索引可以为负数(负数会取所有)
linsert        指定某个元素值前或者后插入某个元素值,例如:LINSERT mylist BEFORE "World" "There",如果列表存在多个重复的元素则从第一个元素前或后插入
lrem        移除,例如:lrem studentname 3 zhangsanfeng 从队列中移除3个zhangsanfeng,会从较小的索引开始移除
ltrim        剪切出指定范围内的内容,例如:ltrim studentname 1 3,得到的新studentname列表只含有索引为1和3之间的元素
lindex        获取某个索引上的值,例如:lindex studentname 2,得到第3个元素,会报索引越界异常
lset        设置队列里面一个元素的值
llen        获取列表长度

-------注意:
第一,lpush在第一次push数据的时候也是从左push,所以得到的结果跟命令行中的顺序相反
127.0.0.1:6379> LPUSH shandong jinan qingdao
(integer) 2
127.0.0.1:6379> LRANGE shandong 0 -1
1) "qingdao"
2) "jinan"
127.0.0.1:6379> lpush shandong dezhou
(integer) 3
127.0.0.1:6379> LRANGE shandong 0 -1
1) "dezhou"
2) "qingdao"
3) "jinan"
第二,两头均可操作
第三,建议对比着java中的ArrayList等学习,结构相似

3.hash数据类型
健值对的存储类型
hset        设置指定字段的值,例如hset shujuyun 1611 15
hget        获取指定字段的值,例如hget shujuyun 1611
hdel        删除指定的key值,例如HDEL shujuyun 1611
hmset        批量设置指定字段的值,例如hmset shujuyun 1612 22 1609 23
hmget        批量获取指定字段的值,例如hmget shujuyun 1611 1609
hkeys        获取hash所有字段名称
hlen        获取元素总数量,例如hlen shujuyun
hgetall     获取所有key-value对,例如hgetall shujuyun
hincrby        将指定的字段值加某个数字,例如某学院1班的学生数加2,HINCRBY shujuyun 1 2
hdecrby        将指定的字段值减某个数字

4 set数据类型
元素各不重复,没有索引(无序)
sadd        添加一个或多个新元素,返回影响的行数。SADD studentno 1 2 3 4 5 5 6 返回6.如果集合中已经有了某个元素则返回0.
srem        删除集合中某个元素,例如srem food juzi
spop        从集合弹出一个或多个元素并返回被删除的值,spop food。注意:由于集合无序,没有左右之分,所以弹出的元素随机。
smove        移动food集合中的元素xiaomai到shiwu集合中,smove food shiwu xiaomai
sismember    确定某个值是否在集合中,如果有则返回1,如果没有返回0.例如:sismember food xiaomai
smembers    返回集合中所有的值
scard        获得集合里面元素数量
sinter        获取多个集合的交集
sunion        获取多个集合的并集,合并后消重
sdiff        获取多个集合的差集,例如sdiff A, SDIFF A B, SDIFF B A.
SRANDMEMBER    随机获取一个元素

备注:
1)该结构可以看做一个没有索引、没有重复值的"list",命令的使用上跟list相仿
2)key值可以看做变量名称,是key-value中key的部分,每种数据类型的value格式又各不相同,list是动态数组,有索引;hash的value部分是一组一组的键值对。

5 sorted set数据类型
每个元素都有一个float类型的score值,称为分数
zadd        增加元素,例如:zadd chengji 90 zhangsan 88 lisi 95 wangwu
zrem        删除指定元素,返回值是影响的个数,例如:zrem chengji zhangsan
zscore        获取成员的分数,例如zscore chengji lisi
zincrby        将指定的字段值加某个数字
zdecrby        将指定的字段值减某个数字
zcard        获取成员数量(长度)
zscan        迭代显示集合中的元素
zcount        分数满足区间min-max条件的总个数,包前包后
zrange        根据指定的index(索引)返回成员列表,根据分数从小到大排序。例如:zrange chengji 1 2 [withscores], zrang chengji 0 -1返回所有
zrevrang    跟zrange相反,根据分数从大到小排序
zrangbyscore获取指定分数区间min-max内的字段,包前包后,例如:ZRANGEBYSCORE chengji 60 90 limit 0 2 从0开始取,取2个
备注:
1)成员跟set一样必须是唯一的,分数可以重复。
2)成员有相应的索引,索引值大小按照分数从小到大排序,见zrange
3)命令中[]中的参数代表可选
4)还可以使用limit关键字限制结果集个数,这里的limit跟mysql中的limit含义一样

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值