NOSQL= Not Only SQL
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
可视化客户端:
https://github.com/uglide/RedisDesktopManager
- Redis 指令
通过help命令可以让我们查看Redis的指令帮助,在help后面加上空格,然后按tab键,会看到 重用的命令组
主要包含:
@generic : 通用指令
@string : 字符串类型指令
@list : 队列结构指令
@set :set 结构指令
@sorted_set :也排序的set结构指令
@hash : hash结构指令
除了@generic以外的,对应了Redis中常用的5中数据类型:
String : 等同于java中的,Map<String,String>
list :等同于java中的 Map<String,List>
set : 等同于java中的 Map<String,Set>
sort_set: 可排序的set
hash: 等同于java中的: Map<String,Map<String,String>>
可见,Redis中存储的数据结构都是类似java的map类型,Redis不同数据类型,只是“map”的值的类型不同。
- 1 通用指令
keys
获取符合规则的键值列表。
语法: keys pattern
示例: keys * (查询所有的键)
非常损耗性能,会导致所有用到redis的服务全部停止,所以可以修改配置类 rename-command 来重新命名keys 命令
生产环境一定要禁用keys
exists
如果存在返回1,不存在返回0
语法: EXISTS key
del
删除key,可以删除一个或者多个key, 返回删除个数
select
选择不同的库
一般默认有16个库,select 选择不同的库,在生产环境中会做集群,所以要修改配置的database 改成1
expire
语法:
EXPIRE key seconds
作用: 设置key的过期时间,超过时间后清除
返回值:
如果成功设置过期时间,返回1
如果key不存在或者不能设置过期时间,返回0
TTL
查看一个key的过期时间
语法: TTL key
返回值:
返回剩余的过期时间
-1: 永不过期
-2: 已经过期或不存在
persist
语法:
persist key
作用:
+++
命令用于移除给定 key 的过期时间,使得 key 永不过期
返回值:
当生存时间移除成功时,返回1
如果 key 不存在或 key 没有设置过期时间,返回 0
1.2 字符串指令
字符串结构,其实时Redis中最基础的K-V结构,其键和值都是字符串,类似Java的Map<String,String>
字符串类型时Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。
可以存储JSON化的对象,字节数组等,一个字符串类型键允许存储的数据最大容量是512M
常用指令:
SET key value 设置指定key的值
GET key 获取指定key的值
GETRANGE key start end 返回key中字符串的值
INCR key 将key 中储存的数字值增一
DECR key 为键key 储存的数字值减去一
DECRBY key decrement 将键key 储存的整数值减去减量 decrement
APPEND key value 命令用于为指定的 key 追加值
STRLEN key key命令用于返回字符串key(键)值的长度
MGET key1 key2 … 获取所有(一个或者多个)指定的key的value
MSET key value key value… 同时设置一个或者多个key-value对
1.3 hash结构命令
Redis的Hash结构类似于Java中的Map<String,Map<String,String>>, 键是字符串,值是另一个映射,结构如图:
常用命令
HSET 设置指定key的值
HGET 获取指定key的值
HGETALL 获取所有的key的value
HKEYS key 获取指定建的字段
HVALS 获取指定键的所有字段