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常用数据类型及命令的更多相关文章

  1. redis常用数据类型与命令

    注意:LPUSH 和LPOP按照栈进行操作,RPUSH和RPOP按照队列进行操作 zremrangebyscore key score开始  score结束//根据score删除 zremrangeb ...

  2. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  3. Redis常用数据类型

    Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html     Redis最为常用的数据类型主要有以下五种: ●Str ...

  4. Redis系列(二):Redis的数据类型及命令操作

    原文链接(转载请注明出处):Redis系列(二):Redis的数据类型及命令操作 Redis 中常用命令 Redis 官方的文档是英文版的,当然网上也有大量的中文翻译版,例如:Redis 命令参考.这 ...

  5. Redis常用数据类型及各种数据类型应用和实现方式

    Redis常用数据类型: StringHashListSetSorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的: 首先Red ...

  6. Redis常用数据类型以及操作

    Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...

  7. 【数据库】Redis(2)--Redis的常用数据类型及命令

    1.Redis主要数据类型分类 Redis中存储数据常用的数据类型主要有五种:String.List.Set.Sorted Set.Hash,这五种数据结构在Redis中存储数据的命令掌握对于我们后期 ...

  8. Redis的介绍和常用数据类型结构命令的总结

    我们先来看一下redis的一个定义,来自官方的: Redis is an open source, BSD licensed, advanced key-value store. It is ofte ...

  9. Redis常用数据类型和事物以及并发

    Redis数据类型 基本类型(String int): 如 set key value .get key 等 所有命令都是按照 key value keys * 可以将全部数据列出,其中后面的 &qu ...

随机推荐

  1. bzoj 3978: [WF2012]Fibonacci Words

    Description 斐波那契01字符串的定义如下 F(n) = { 0  if n = 0 1  if n = 1 F(n-1)+F(n-2) if n >= 2 } 这里+的定义是字符串的 ...

  2. appium 5-27屏幕旋转、

    1.屏幕切换 注意:应用一定要支持横竖屏切换,否则无效果, public void testBrowser() throws InterruptedException { Thread.sleep(1 ...

  3. appium 3-4-1034等待、日志、性能数据、xpath定位、web driver协议

    1.等待 1.1精确等待 sleep 不推荐 @Test public void testWait1() throws InterruptedException{ day_time(); Thread ...

  4. Android logcat命令详解

    一.logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具,可以用于得到程序的log信息 log类是一个日志类,可以在代码中使用lo ...

  5. Docker集群管理(二)—— docker+swarm+etcd+shipyard

    引言 前一篇介绍如何简单的搭建一个可视化管理的docker集群,本篇将在此基础之上引入etcd发现服务. 目的 使用etcd发现服务解决swarm内置发现服务的不稳定问题.etcd采用raft算法,这 ...

  6. 本地git仓库常用操作

    SSH配置: 本机创建SSH key $ ssh-keygen -t rsa -C "youremail@example.com" 将SSHkey添加到git仓库:id_rsa.p ...

  7. laravel5.4中ajax删除数据

    1 JS代码 function deleteInfo(id) { if(id) { var r=confirm('确定要删除吗'); if(r==true) { $.ajax({ url: " ...

  8. 使用 IIS 过程中遇到的一些问题

    由于我最近开发的 Web 程序多是采用 Python 为主,因此大部分都是部署在 Linux 下的,自然在 Web 服务器上就选择了 Nginx,不过一些纯静态文件的 Web 应用会放在 IIS 下面 ...

  9. leetcode463

    public class Solution { public int IslandPerimeter(int[,] grid) { );//行数 );//列数 ; ; i < row; i++) ...

  10. 如何给echarts图表添加下载图表成图片的功能

    先打开一个现成的图表效果图,注意图中圈出的地方,如图   打开源码找到option,如图   在option下添加toolbox,如图   在toolbox下添加feature,如图   在featu ...