Redis常用数据类型及命令
Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
注意:
命令的关键词,如set,get,lpush,zadd等不区分大小写。。
但是key一定要注意区分大小写。
String(字符串)
通过 set 设置 key对应的value,再通过get获取key对应的value。
test:0>set name "lin" OK test:0>get name "lin"
Hash(哈希)
Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。
此命令会覆盖哈希表中已存在的字段。
如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。
hmset的基本语法如下:
HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
如果只设置一个field,则使用hset,如下:
HSET KEY_NAME FIELD VALUE
获取存储在哈希表中指定字段的值,如下:
HGET key field
示例如下:
test:0>hmset myhashkey field1 "hello" field2 "world" OK test:0>hget myhashkey field1 "hello" test:0>hget myhashkey field2 "world"
test:0>hgetall myhashkey
field1
"hello"
field2
"world"
List(列表)
list添加数据如下:
LPUSH key value1 [value2] 将一个或多个值插入到列表头部
list遍历数据如下:
Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
LRANGE KEY_NAME START END
lpush l是left,也就是从左边开始添加。需要注意的是,继续从左边添加数据,已添加的数据会向右移。
因此,遍历时的顺序与插入时的顺序相反。
(rpush r是right,也就是从右边开始添加。)
list移除数据如下:
Lpop 命令用于移除并返回列表的第一个元素。
Lpop KEY_NAME
示例如下:
test:0>lpush order order1 1 test:0>lpush order order2 2 test:0>lpush order order3 3 test:0>lrange order 0 2 order3 order2 order1
test:0>lpop order
order3
test:0>lrange order 0 2
order2
order1
Set(集合)
Redis的Set是string类型的无序不重复的集合。
sadd 命令:添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
如果添加多个元素,那么就会返回元素的个数。
sadd key 元素1 元素2 元素3 ...
smembers命令:遍历set集合
smembers key
示例如下:
test:0>sadd mySet "redis" 1 test:0>sadd mySet "mongodb" 1 test:0>sadd mySet "couchdb" 1
//因为元素"couchdb"已经存在,所以无法再次添加,返回结果0. test:0>sadd mySet "couchdb" 0
//遍历集合 test:0>smembers mySet "couchdb" "mongodb" "redis"
//添加多个元素的示例如下: test:0> sadd set-test c java c++
(integer) 3
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd 命令:添加元素到集合,元素在集合中存在则更新对应score
zadd key score 元素内容
注意:命令的关键词,如zadd等不区分大小写。。但是key一定要注意区分大小写。
示例如下:
test:0>zadd myZSet 0 "spring" 1 test:0>zadd myZSet 0 "springboot" 1 test:0>zadd myZSet 1 "mybatis" 1
--注意:key要区分大小写。以下的myzset写错了,所以查不出结果 test:0>zrangebyscore myzset 0 1 test:0>zrangebyscore myZSet 0 1 "spring" "springboot" "mybatis" test:0>
相关文章
- 解锁Redis:使用启动命令(redis启动命令)
- 常用php操作redis命令整理(三)LIST类型详解编程语言
- Redis命令探索:连接快捷实现(redis命令连接)
- Redis:实用的常用方法简介(redis 常用的方法)
- 掌握Redis连接池,提高工作效率(常用的redis连接池)
- 点缀尚景花式封装Redis(花式封装redis)
- Redis强大,快速的开源数据库(简单介绍一下redis)
- 探索Redis集群的智能命令(查看redis集群的命令)
- 本地Redis清空一步一步操作指南(本地redis清空)
- 高效掌握Redis命令实现服务器优化(服务器redis指令)
- 命令Shell下执行Redis命令的简单操作(shell执行redis)
- 分布式Redis构建并发查询的交集(分布式redis 求交集)
- 深入学习Redis掌握常用命令查看(命令查看redis)
- Redis实现数据预热,提升性能(redis 预热数据)
- Redis集群实现键值迁移的技术架构(redis集群键值迁移)
- Redis实现的高效阻塞锁机制(redis 阻塞锁)
- 善用Redis通道命令加快信息传递(redis通道命令)
- 操作利用Redis连接命令简洁的为用户操作提供便利(redis连接命令 用户)
- 技术最好的Redis技术,你与它携手(redis讲的最好的)
- 利用Redis自带压力测试工具提高系统性能(redis自带的压测命令)
- Redis存储复杂数据的佼佼者(redis能存数组么)