Redis特色
Redis REmote Dlctionary Server 远程字典服务器
1.独特的键值对模型
key-value 键值对类型
与其他NoSQL数据库对比
Memcached:键值对数据,键和值只能字符串,没有持久化功能
mangoDB:JSON组成的文档
Redis支持的数据类型
2.内存存储,数据极快
3.丰富的附加功能
持久化功能
发布与订阅功能:微信公众号类型
过期键功能:某条数据存储时间,时间到了过期
事务功能
集群
复制
4.完善的完成
5.良好的支持
6.广泛的使用
Redis使用,启动服务与关闭服务
启动Redis数据库
1.打开Redis服务
bin/redis-server redis.conf
2.进入Redis客户端
bin/redis-cli -h 主机名
关闭Redis数据库
方法1:
在Redis客户端中使用shutdown命令,再使用quit命令,即可关闭Redis服务,退出Redis客户端
方法2:
在Redis编译目录下,输入下面的命令
bin/redis-cli -h 主机名 -p 6379 shutdown
Redis数据库常用基础
数据库
默认有16个数据库database,database id类似于数组的下标从0开始到15
默认使用的database是db0
常用简单命令
切换数据库 select 下标
查看database中的key数量 dbsize
默认查看当前使用的数据库的key
清空当前数据库内容 flushdb
清空所有数据 flushall
查看key的类型 type 对应key
获取所有key keys *
判断某个key是否存在 exists key
存在返回1 不存在返回0
设置key过期时间 expire key time
time为秒数
查看剩余过期时间 ttl key
返回为存在秒数
key没有设置过期时间时,返回值为-1
key不存在或者过期,返回值为-2
数据结构
key命名规范
与MYSQL等关系型数据库不同的是,redis没有命名空间,而且对键名(key)没有强制的要求(除了不能使用的一些特殊字符)。合理的设计键名,有利于防止冲突和项目维护费,
推荐的写法:业务名称:对象的名:属性、
用户模块的,存储用户id,
user:userId
u:uid,避免键过长浪费内存空间
客户端通信协议
数据类型
HASH:哈希
类似于Java中Map,一个键值对的集合
一个String类型的file和value的映射表
特别适用存储一个对象
List:列表
简单的字符串列表,按照插入顺序排序
可以添加元素到列表的头部或者尾部
底层:实际上一个链表,便于插入和删除
set:集合
String类型的无序集合
集合中不允许出现重复的元素
可以在服务器端完成多个set集合的聚合操作
zset:有序集合
和set集合是一样的,
每个元素都会关联一个Double类型分数(权重),通过该分数进行从小到大的排序
成员是唯一的,但是分数(score)却可以重复