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含义一样