Redis
Redis初认知
Redis简介
Redis诞生于2009年,全称是REmote DIctionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库,开发者是意大利Antirez(原名Salvatore Sanfilippo),通常用作数据库(database)、缓存(cache)、流式存储引擎(streaming engine)、消息代理(message broker)等。
Redis是使用ANSI C编写的,可以在大多数POSIX系统上运行,比如Linux、BSD和Mac OS X,没有外部依赖。Linux和OS X是Redis开发和测试最多的两个系统,官方推荐使用Linux进行部署。Redis也支持在Solaris派生的系统(如SmartOS)上进行工作,但仅尽最大努力提供支持,没有官方对Windows版本的支持。提供Java、C/C++、C#、PHP、Python、JavaScript、Perl、Ruby、Erlang、Object-C等客户端。
特点
- 键值(key-value)型,value支持多种不同的数据结构,功能丰富
- 单线程,每个命令具有原子性
- 低延迟,速度快(基于内存、单线程无上下文切换、IO多路复用、渐进式ReHash)
- 支持数据持久化操作
- 支持主从复制、哨兵机制、集群,提升容错率
Redis数据结构
String类型
String类型,也就是字符串类型,是Redis中最简单的存储类型。key一定是String且不为空。其value是String时,根据字符串的格式不同,又可以分成三类:string、int、float,其中int和float可以做自增和自减操作。String类型的相关操作命令如下:
| 命令 | 解释 | 命令 | 解释 |
|---|---|---|---|
SET |
添加或者修改已经存在的String类型键值对 | INCRBY |
让一个int的value自增指定步长 |
GET |
根据key获取String类型的value | INCRBYFLOAT |
让一个float的value自增指定步长 |
MSET |
批量添加多个String类型的键值对 | SETNX |
添加一个String类型的键值对,前提是这个key不存在,否则不执行 |
MGET |
批量获取多的String类型键值对 | SETEX |
添加一个String类型的键值对,并且指定有效期 |
INCR |
让一个int的value自增1,如果不在则设置key的value为0 | decr |
让一个int的value自减1,如果不在则设置key的value为0 |
decrby |
让一个int的value自减指定步长 | append |
如果 key 已经存在,并且 value 是字符串,那么 append 命令会将指定的value值拼接到字符串后面 |
getrange |
获取 key 对应的字符中的子串,双侧闭区间 | setrange |
覆盖字符串的一部分 |
1 | set age 12 // set key value |
Hash类型
Hash类型即为散列哈希表,与Java中的HashMap类似
| 命令 | 解释 | 命令 | 解释 |
|---|---|---|---|
HSET |
添加或者修改hash类型的key的field的值 | HKEY |
获取一个hash类型中的所有field |
HGET |
获取一个hash类型的key的field的值 | HVALS |
获取一个hash类型中的所有value |
HMSET |
批量添加多个hash类型的field值 | HINCRBY |
让一个hash类型的key的字段自增指定步长 |
HMGET |
批量获取多的hash类型field值 | HSETEX |
添加一个hash类型的key的field值,前提是这个field不存在否则不执行 |
HGETALL |
获取一个hash类型中的所有field和value | 空 |
空 |
1 |
评论




