redis使用(二):五种键值类型

来源:互联网 发布:linux查看目录 编辑:程序博客网 时间:2024/06/01 09:32

redis中保存的数据都是键值对,键的类型都是字符串类型,值的类型有五种:
String, 字符串
Hashs, 哈希表(又称散列), 哈希表中的元素是字符串
Lists, 列表 ,列表中的元素也是字符串
Sets, 集合,元素也是字符串
Sorted Sets, 有序集合,元素是字符串和一个对应的score

一.key的常用命令

#KEY pattern查看匹配模式的键, pattern支持glob通配符> KEYS *1) "car"2) "name"#EXISTS key 查看一个键是否存在127.0.0.1:6379> EXISTS name(integer) 1127.0.0.1:6379> EXISTS nouse(integer) 0#DEL key [key ...] 删除键, 返回删除键的个数127.0.0.1:6379> DEL name(integer) 1127.0.0.1:6379> DEL name(integer) 0#TYPE key 获得键值的类型127.0.0.1:6379> SET name wukongOK127.0.0.1:6379> TYPE namestring127.0.0.1:6379> LPUSH ring BBA(integer) 1127.0.0.1:6379> TYPE ringlist

二 .String常用命令

#SET key value  设置一个string类型的键值对 127.0.0.1:6379> set car baomaOK#GET key 获取一个string 键对应的值127.0.0.1:6379> get car"baoma"#INCR key 使值加一,条件是string的值可以转换数字127.0.0.1:6379> set count 1OK127.0.0.1:6379> incr count(integer) 2127.0.0.1:6379> get count"2"#APPEND key value127.0.0.1:6379> set say helloOK127.0.0.1:6379> append say " world !"(integer) 13127.0.0.1:6379> get say"hello world !"#STRLEN key 查询字符串的长度127.0.0.1:6379> strlen say(integer) 13#MGET key [key ...]    获取多个键的值#MSET key value [key value ...]  设置多个键的值#GETBIT key  offset 获得指定键值的二进制位的值#SETBIT key  offset 设置指定键值的二进制位的值Bit位相关的操作,可以用来表示大量的bool值,来节省空间其它数值相关命令:#INCRBY key increment#DECR   key  #DECRBY key decrement#INCRYBYFLOAT key incrment

三 .Hashs
Hash类型的值保存了字段和字段值的映射

#hset key field value127.0.0.1:6379> hset car:1 name BMW(integer) 1127.0.0.1:6379> hset car:1 price 50(integer) 1#hget key field127.0.0.1:6379> hget car:1 price"50"#hgetall 获取所有字段的值127.0.0.1:6379> hgetall car:11) "name"2) "BMW"3) "price"4) "50"#hmset field value [field value ...]  设置多个字段#hmget field value [field ...]        获取多个字段#hexists key field 判断字段是否存在127.0.0.1:6379> hexists car:1 name(integer) 1#hsetnx key field value 如果字段不存在就赋值127.0.0.1:6379> hsetnx car:1 color black(integer) 1127.0.0.1:6379> hget car:1 color"black"#hincrby key field increment  增加字段的值127.0.0.1:6379> hincrby car:1 price 6(integer) 56127.0.0.1:6379> hget car:1 price"56"#hdel key field [field ...] 删除字段"56"127.0.0.1:6379> hdel car:1 price(integer) 1#hlen key 获取字段数127.0.0.1:6379> hlen car:1(integer) 2

四 . Lists
Lists存储的是字符串列表,内部用双向列表实现

#lpush key value [value ...] 向列表左边添加元素127.0.0.1:6379> lpush lang c(integer) 1#rpush key value [value ...] 向列表右边添加元素127.0.0.1:6379> rpush lang c++(integer) 2#lpop key 从列表左边弹出元素127.0.0.1:6379> lpop lang"c"#rpop key 从列表右边弹出元素127.0.0.1:6379> rpop lang"c++"#lrange key start stop 获取某个片段127.0.0.1:6379> lrange lang 1 21) "c++"2) "java"#lrem count value 删除count个值为value的元素count>0: 从删除左边count个值为value的元素count<0: 从右边删除count=0: 删除所有的#lindex key index 返回索引为index的元素,即第index个元素127.0.0.1:6379> lindex lang 2"java"#ltrim key start end 保留指定范围的元素127.0.0.1:6379> lrange lang 0 10001) "c"2) "c++"3) "java"4) "python"127.0.0.1:6379> ltrim lang 1 2OK127.0.0.1:6379> lrange lang 0 -11) "c++"2) "java"#linsert key before|after value_pos value 127.0.0.1:6379> linsert lang before java c#(integer) 3127.0.0.1:6379> lrange lang 0 -11) "c++"2) "c#"3) "java"#rpoplpush source destination 把元素从source转移到destination127.0.0.1:6379> rpoplpush lang prog"java"127.0.0.1:6379> lrange prog 0 -11) "java"

五 .Sets
Sets类型的键值是一个字符串集合

#sadd  key member [member ...]   增加元素127.0.0.1:6379> sadd app qq wechat(integer) 2#srem key member [member ...]   删除元素127.0.0.1:6379> srem app qq(integer) 1#smembers key   查询所有元素 127.0.0.1:6379> smembers app1) "wechat"#sismember key member 查看元素是否存在127.0.0.1:6379> sismember app qq(integer) 0127.0.0.1:6379> sismember app wechat(integer) 1#sdiff key [key ...]  求差集#sinter key [key ...] 求交集#sunion key [key ...]  求并集127.0.0.1:6379> sadd A 2 4 6(integer) 3127.0.0.1:6379> sadd B 1 4 9(integer) 3127.0.0.1:6379> sdiff  A B1) "2"2) "6"127.0.0.1:6379> sinter A B1) "4"127.0.0.1:6379> sunion A B1) "1"2) "2"3) "4"4) "6"5) "9"#sdiffstore destination key [key ...]  求差集并存储到destintion#sinterstore destination key [key ...] 求交集并存储到destintion#sunionstore destiontion key [key ...] 求并集并存储到destintion

五.sorted set
有序集合,集合中的每个元素有一个score,并根据score的大小排列

#zadd key score member [score member ...] 增加元素127.0.0.1:6379> zadd student  88 tom 90 jack 95 kerl(integer) 3#zscore key member 获取元素的分数127.0.0.1:6379> zscore student tom  "88"#zrange key start stop  获取start到stop之间的元素127.0.0.1:6379> zrange student 1 21) "jack"2) "kerl"#zrange key start stop withscores 获取start到stop之间的元素,带分数127.0.0.1:6379> zrange student 1 2  withscores1) "jack"2) "90"3) "kerl"4) "95"#zrangebyscore key min max [withscore] 127.0.0.1:6379> zrangebyscore student 80 901) "tom"2) "jack"#zincrby key increment member 增加一个成员的分数 127.0.0.1:6379> zincrby student 10 tom"98"#zcount key min max 获取指定分数区间的元素个数127.0.0.1:6379> zcount student 80 90(integer) 2#zrem key member [member ...] 删除元素127.0.0.1:6379> zrem student tom(integer) 1#zremrangebyrank key start stop  按照排名删除元素#zremrangebyscore key min max  按照分数删除元素#zrank key member获得元素的排名127.0.0.1:6379> zrank M c(integer) 2#zinterstore destination numkeys key [key ...] [weight w1 w2 ...] [aggregate sum|min|max]求numkeys个集合的交集,并存储到集合destination中127.0.0.1:6379> zadd M 50 a 60 b 70 c(integer) 3127.0.0.1:6379> zadd N 80 b 90 c(integer) 2127.0.0.1:6379> zinterstore P 2 M N(integer) 2#zunionstore destnation numkeys key [key ...] [weight w1 w2 ...] [aggregate sum|min|max]  求交集

以上命令或者更多命令,都可以在redis官网和redis中文官网查到。

参考:
1.redis官网
2.redis中文官网
3.redis 命令参考

0 0