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常用数据类型与命令
注意:LPUSH 和LPOP按照栈进行操作,RPUSH和RPOP按照队列进行操作 zremrangebyscore key score开始 score结束//根据score删除 zremrangeb ...
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis系列(二):Redis的数据类型及命令操作
原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...
- Redis常用数据类型及各种数据类型应用和实现方式
Redis常用数据类型: StringHashListSetSorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Red ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- 【数据库】Redis(2)--Redis的常用数据类型及命令
1.Redis主要数据类型分类 Redis中存储数据常用的数据类型主要有五种:String.List.Set.Sorted Set.Hash,这五种数据结构在Redis中存储数据的命令掌握对于我们后期 ...
- Redis的介绍和常用数据类型结构命令的总结
我们先来看一下redis的一个定义,来自官方的: Redis is an open source, BSD licensed, advanced key-value store. It is ofte ...
- Redis常用数据类型和事物以及并发
Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...
随机推荐
- Qt5布局管理(一)——QSplitter分割窗口类
转载:LeeHDsniper 概述 本文首先通过三个实例分别介绍Qt5的分割窗口QSplitter类.停靠窗口QDockWidget类.堆栈窗体QStackedWidget类,然后介绍布局管理器的使用 ...
- windows git 清除已保存的密码
进入git目录 右键 git-bash.exe 执行命令: git config --system --unset credential.helper 然后执行git clone http://... ...
- RDD之六:Action算子
本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行. 根据Action算子的输出空间将Action算子进行分类:无输出. HDFS. S ...
- R语言学习——输入与输出
导入数据: grades<-read.table("D:/ProgramData/test1.txt",sep="\t") 求均值:mean() 求方差: ...
- python3+selenium3.13的简单操作
1.浏览器 1.1 浏览器窗口大小位置 driver.set_window_size(self, width, height, windowHandle) 将某个窗口设置为固定大小 driver.se ...
- 上Google Adsense个人的一点体验
最近我想开通一个Google Adsense帐号,因为以前注册过一个Google帐号,所以我以为两个是可以共通的,因为很久没上Google帐号,我记不太清密码了,所以我先是登录了Google,登上去了 ...
- LVM逻辑卷创建管理
首先添加三块硬盘 结构关系图 相关命令 查看磁盘 #fdisk -l 分区 #fdisk /dev/sda/ #n新建 ProMary主分区 extended扩展分区 #p查看 #q不保存退出 #w保 ...
- java UTC时间和local时间相互转换
java UTC时间和local时间相互转换 1.local时间转UTC时间 /** * local时间转换成UTC时间 * @param localTime * @return */ public ...
- golang web框架 beego 学习 (三) beego获取参数
直接上常用的例子吧: A: 获取URL中的参数 router func init() { beego.Router("/task/?:id/?:name", &co ...
- 进行web开发时应该考虑的架构性因素
功能实现 这个自不必说. 性能与可伸缩性 根据预期的访问量,评估机器负载情况.如果在可预期的未来一台服务器可以撑得住,则没必要使用多台服务器.需要对多个环节进行性能评估:web服务器.逻辑服务器.DB ...