简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持master-slave模式的数据备份。
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
不依赖外部库,单线程操作简单,原子性读写。
下载安装
1 | $ redis-server #启动redis服务器 |
数据结构
redis是key-value数据库,其中value可以是下列五种数据类型:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
扩展的数据类型:
- bitmaps(位图)
- HyperLogLog(超小内存唯一值计数)
- GEO(地理信息定位)
功能
- 发布订阅
- Lua脚本
- 事务
- pipeline
- 主从复制
- 高可用(v2.8)
- 分布式(v3.0)
应用场景
- 缓存
- 计数器(微博的转发数,点赞数,incr命令)
- 消息队列(简单的功能)
- 排行榜(微博热搜)
- 社交网络(粉丝数,关注数,共同关注)
- 实时系统(布隆过滤器,辣鸡邮件)
可执行文件
- redis-server(redis服务器)
- redis-cli(redis命令行客户端)
- redis-benchmark(redis性能测试工具)
- redis-check-aof(AOF文件修复工具,断电时损坏文件)
- redis-check-dump(RDB文件检测工具,断电时损坏文件)
- redis-check-sentinel(sentinel服务器,v2.8)
返回值
状态回复
1
2
3
4
5
6127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get hello1
(nil)
127.0.0.1:6379> set hello world
OK字符串回复
1
2127.0.0.1:6379> get hello
"world"错误回复
1
2127.0.0.1:6379> hget hello field
(error) WRONGTYPE Operation against a key holding the wrong kind of value整数回复
1
2
3
4127.0.0.1:6379> set number 1
OK
127.0.0.1:6379> incr number
(integer) 2多行字符串回复
1
2
3127.0.0.1:6379> mget hello number
1) "world2"
2) "2"
常用配置
- port //服务器端口
- daemonize //是否使用守护进程的方式启动(yes|no),如果为yes,输出的日志文件将输出到指定位置
- dir //工作目录,日志文件,持久化文件存储位置
- logfile //系统日志文件名