Redis数据库,是nosql的一种。与传统关系型数据库(如mysql、sqlserver等)相比,他在处理大数据量上相当有优势,扩展性和可用性高,这是传统型数据库所达不到的。

Redis是一个key-value的存储系统,数据保存在内存中,速度自然很快。Redis支持的Value类型很多,也就是我们今天要说的数据类型。

1、string

最常用也最简单的数据类型,存放普通的key-value,虽然是String,但vlaue不仅仅只是字符串,也可以是数字。

来看一个简单的demo:

1)进入redis客户端

2)设置

3)获取

如果想看的更直观一些,可以在图形化工具中查看,db0中已经新建了一个“name”的key。

string类型key-value是一一对应的,如果新建的key值已经存在,则会覆盖原有值。

2、hash

hash类型的一大特点就是它可以方便存取整个对象。

如果不使用hash,我们可能采用序列化的方式来操作。将要存储的对象以序列化的方式存储,使用set命令,类似string的操作。

这种做法耦合性大,需要序列化/反序列化,适合数据量小的操作。

但如果数据量很大的话,该怎么办?

3、list

链表结构,提供push、pop等方法,可以实现栈、队列等数据结构方式。

1)栈

典型特点:先进后出

lpush命令:从头部压入元素

m1中的的元素one最先进入,最后被删除。

2)队列

特点:先进先出

使用rpush加入元素,lpop删除元素。

4、set

java基础——集合中就提到,set是一个元素不重复的无序集合。

常用操作:实现集合的差、交和并集。

以差集为例:

sinter :交集

sunion:并集

操作都很简单,就不一一列举了。

5、sorted sets

特点:set类型的升级版,该类型是有序的。

因为是有序的,在添加元素的时候需要指定顺序。

这几种数据类型相关的操作很多都是类似的,比如添加一个key的value值,在string中使用set命令,hash中是hset,set是sadd等等,只不过是命令的名字稍有不同罢了,掌握一种其他的都很容易的。这里,小编将这些基本操作整理了一下,突然发现redis的功能还不少呢。

Redis数据类型及操作详解的更多相关文章

  1. VC++常用数据类型及其操作详解

    原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...

  2. redis之数据操作详解

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  3. nosql Redis命令操作详解

    Redis命令操作详解 一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *.?.[] (2)randomkey:返回随机key (3)type key: ...

  4. Redis的事务功能详解

    Redis的事务功能详解 MULTI.EXEC.DISCARD和WATCH命令是Redis事务功能的基础.Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项: >Re ...

  5. redis.conf配置信息详解

    redis.conf配置信息详解 配置文件 # Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k =& ...

  6. redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

  7. [Android新手区] SQLite 操作详解--SQL语法

    该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...

  8. NoSQL之Redis高级实用命令详解--安全和主从复制

    Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...

  9. MySQL 操作详解

    MySQL 操作详解 一.实验简介 本节实验中学习并实践 MySQL 上创建数据库.创建表.查找信息等详细的语法及参数使用方法. 二.创建并使用数据库 1. 创建并选择数据库 使用SHOW语句找出服务 ...

随机推荐

  1. BZOJ1569: [JSOI2008]Blue Mary的职员分配(dp 暴力)

    Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 483  Solved: 189[Submit][Status][Discuss] Descriptio ...

  2. ELK初学搭建

    目录:基础准备 修改相关系统配置 安装elasticsearch 安装 kibana 安装logstash X-pack插件的安装 登录网页查看 ELK名字解释 ELK就是ElasticSearch ...

  3. 用状态机表示SFC中的并行分支

    过去一直认为,状态机表示SFC会不会是任务复杂化,这次简单实验了一下,感觉还可以.请看下面的控制. 在SFC中,A和B是一对并行分支,汇合后转移到C分支中,怎么了用状态机表示呢?这里我们在状态机里分别 ...

  4. Qt on Android 蓝牙通信开发

    版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...

  5. Django的aggregate()和annotate()函数的区别

    aggregate() aggregate()为所有的QuerySet生成一个汇总值,相当于Count().返回结果类型为Dict. annotate() annotate()为每一个QuerySet ...

  6. Android面试收集录 数据库

    1.SQLite数据库如何查询表table1的第20条到30条记录? select * from table1 limit 19,11   ==>从19开始,11个数据 2.如何才能将table ...

  7. xss挑战赛小记 0x02(prompt(1))

    0x0O 上次搜xss挑战赛的时候 还找到了一个看上去难度更高的挑战赛 今天做了一下 学到了很多新东西 这个挑战赛能够在页面成功prompt(1)就算过关了 挑战地址 http://prompt.ml ...

  8. 【转】手把手教你:Ubuntu14+apache2+django1.7+python2.7下网页/网站部署

    本人亲自尝试了网上众多的部署网页/网站方法,绝大多数都未能试验成功,这次的项目光部署这块遇到了很多问题,大概耗费了我一个星期. 本着:王道论坛中的赠人玫瑰,手留余香的精神.我把自己一路所走的历程发布出 ...

  9. 批处理bat实现创建、复制、删除文件及文件夹

    转自:http://blog.csdn.net/linda1000/article/details/10221285 1 建bat文件自动执行复制,删除命令. 例1:以下是复制cd.dll文件至win ...

  10. 4269: 再见Xor

    4269: 再见Xor 链接 分析: 和SGU 275唯一不同的就是需要求出次小值,那么异或出最大值的所有元素中,找到最小的,去除即可. 代码: #include<bits/stdc++.h&g ...