之前笔者常常接触的数据库是关系型数据库,其中MySQL接触居多。近年来NoSQL兴起,各种新型数据库不断诞生,redis就是NoSQL中的一种热门数据库。
  注:此类文章仅仅作为笔者的学习和阅读积累,若有出错之处,敬请谅解。

一、redis的数据类型

  对于redis数据库的介绍,这里就不说了,大家可自行百度,简单来说redis就是以“键值对”形式存储数据的数据库。首先作为一种数据库,对于存储的数据,其必然存在相应的数据存储类型定义,笔者先从redis的存储数据类型说起。
  redis数据库存在5种数据类型,分别为:字符串(String)、列表(list)、集合(set)、散列(hash)、有序集合(zset)。
 

(1)字符串

  字符串在redis甚至在各大数据库中,都作为最基本的数据类型,可存储的值包括字符串、整数或者浮点数。
  redis操作字符串数据常用命令:
命令
说明
基础用法
set
设置存储给定键的值
set [key] [value]
get
获取给定键的值
get [key]
del
删除给定键的值
del [key]
 

(2)列表

  可将redis的列表看作一种“双向队列”,该数据结构允许在其前后两端添加/删除元素。
  redis操作列表数据常用命令:
命令
说明
基础用法
lpush
将给定值插入列表前端
lpush [key] [value]
lpop
从列表前端弹出并返回一个值
lpop [key]
rpush
将给定值插入列表后端
rpush [key] [value]
rpop
从列表后端弹出并返回一个值
rpop [key]
lindex
获取列表给定索引上的单个元素值
lindex [key] [index]
lrange
获取列表给定范围中的所有元素值
lrange [key] [startIndex] [endIndex]
 

(3)集合

  redis和集合和列表都可存储多个字符串,区别在于列表可存储多个相同的字符串,而集合保证存储的元素的唯一性。集合存储元素的方式是无序的。
  redis操作集合数据常用命令:
命令
说明
基础用法
sadd
将给定元素添加进集合中
sadd [key] [value]
srem
删除集合中的给定元素
srem [key] [value] 
sismember
检查给定元素是否存在于集合中
sismember [key] [value]
smembers
返回集合中的所有元素
smembers [key]
 

(4)散列

  redis的散列的值可以存储多个键值对的映射,键无序且不可重复。
  redis操作散列数据常用命令:
命令
说明
基础用法
hset
将给定的键值对添加到散列中
hset [key] [field] [value]
hget
获取指定散列键的值
hget [key] [field]
hdel
删除散列中指定的键(连带值)
hdel [key] [field]
hgetall
获取散列中的所有键值对
hgetall [key]
 
 

(5)有序集合

  有序集合和散列一样用于存储键值对信息,键和散列的要求一样,不同的是有序集合的值被称为“分值(score)”,分值必须是浮点数。有序集合既可以根据键访问成员,也可以根据分值来访问成员。有序集合的键值对按照分值大小进行排序。
  redis操作有序集合数据常用命令:
命令
说明
基础用法
zadd
将给定键值对添加到集合中
zadd [key] [score] [field]
zrem
删除集合中指定的键(连带值)
zrem [key] [field]
zrange
获取集合中指定索引范围的键值对
zrange [key] [startIndex] [endIndex](可选“withscores”参数输出分值)
zrangebyscore
获取集合中指定分值范围的键值对
zrangebyscore [key] [minScore] [maxScore]
 
 

  关于五种数据类型以及Redis的更多操作命令,可到此网站下进行查询和了解。

Redis学习笔记(一):Redis的数据类型的更多相关文章

  1. Redis学习笔记(1) Redis介绍及基础

    1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...

  2. redis学习笔记之redis简介

    redis简介 Redis是一个开源的,高性能的,基于键值对的缓存与存储系统,通过设置各种键值数据类型来适应不同场景下的缓存与存储需求.同事redis的诸多高层级功能使其可以胜任消息队列,任务队列等不 ...

  3. StackExchange.Redis学习笔记(一) Redis的使用初探

    Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...

  4. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  5. Redis学习笔记(4) Redis事务、生存时间及排序

    1. Redis事务 Redis中的事务(transaction)是一组命令的集合,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次 ...

  6. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用 ...

  7. Redis学习笔记(五)- 数据类型之set类型

    Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...

  8. Redis学习笔记(四)-数据类型之list类型

    redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...

  9. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

  10. redis学习笔记(三)——redis的命令大全总结

    总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...

随机推荐

  1. docker部署vue前端

    1.下载安装nginx image docker pull nginx:latest 2.准备将编译后的代码上传到主机上 3.编写dockerfile, nginx conf,并创建镜像 Docker ...

  2. IDEA中获取资源路径问题

    更正 以src开始,就能用相对路径了... shift+ctrl+alt+s 调出项目结构, 在Modules里,就是设置 Sources Resources Test的界面, 右面的路径就是相对路径 ...

  3. 使用Spring Ehcache二级缓存优化查询性能

    最近在对系统进行优化的时候,发现有些查询查询效率比较慢,耗时比较长, 通过压测发现,主要耗费的性能 消耗在 查询数据库,查询redis 数据库:连接池有限,且单个查询不能消耗大量的连接池,占用大量IO ...

  4. 在本机上用IO流实现复制粘贴功能

    /** * 复制文件夹 * @param sourcePath * @param targetPath * @throws IOException */ public void copyFolder( ...

  5. start、就绪、运行状态的demo演示

    1.start状态: package com.roocon.thread.t1; public class NewThread implements Runnable { @Override publ ...

  6. tcp流式传输和udp数据报传输

    所有的书上都说, tcp是流式传输, 这是什么意思? 假设A给B通过TCP发了200字节, 然后又发了300字节, 此时B调用recv(设置预期接受1000个字节), 那么请问B实际接受到多少字节? ...

  7. 常见的可以写入VIM配置文件中的设置参数

    常见的可以写入.vimrc文件中的设置参数 设置参数 含义 :set nu :set nonu 设置与取消行号 :syn on :syn off 是否依据语法显示相关的颜色帮助,在VIM修改相关的配置 ...

  8. Spring @RestController、@Controller区别

    一.用@Controller,返回的是页面:@Controller加上@ResponseBody,返回的是JSON.XML或其他文本. @Controller @RequestMapping(&quo ...

  9. mac使用vnc远程登录ubuntu16.04桌面

    mac使用vnc远程登录ubuntu16.04桌面 1.安装在Ubuntu上安装x11vnc,如下: sudo apt-get install x11vnc 2.配置vnc密码 x11vnc -sto ...

  10. <IDE>vscode前端常用插件推荐,搭建JQuery、Vue等开发环境

    vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器.当前市面上常用的轻型代码编辑器主要是:sublime,notepad++,edit ...