一、简介
Redis是NoSQL数据库,并且是一个高性能的key-value数据库。
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware作为 Key-value 型数据库,Redis 也提供了键(Key)和键值(Value)的映射关系。但是,除了常规的数值或字符串,Redis 的键值还可以是以下形式之一:
- Lists (列表)
- Sets (集合)
- Sorted sets (有序集合)
- Hashes (哈希表)
二、特性
存储结构:
redis以字典结构存储数据,它支持的键值数据类型如下:字符串类型、散列类型、列表类型、集合类型、有序集合类型.
内存存储与持久化:
为了避免将数据存储在内存中应为程序退出或者机器异常关机等导致内存中数据丢失的问题,redis提供了对持久化的支持,即将内存中的数据异步写入到硬盘中。
主从同步
Redis 支持将数据同步到多台从库上,这种特性对提高读取性能非常有益
性能
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给 Redis 带来了非常优秀的性能。读写操作之间有显著的性能差
三、适用场合
- 取最新 N 个数据的操作
- 排行榜应用,取 TOP N 操作
- Pub/Sub 构建实时消息系统
- 缓存
四、发布与订阅(publish/subscribe)
SUBSCRIBE:订阅一个或多个队列
PUBLISH:向频道发布消息
UNSUBSCRIBE:退订此前订阅的频道
PSUBSCRIBE:模式订阅
例:
客户端订阅test-channel频道:
向test-channel频道发布信息:
订阅的客户端收到信息:
五、事务
通过MULTI,EXEC,WATCH等命令实现事务功能:将一个或多个命令归并为一个操作提请服务器按顺序执行的机制,不支持回滚
MULTI:启动一个事务
EXEC:执行事务,一次性将事务中的所有操作执行完成后返回给客户端
WATCH:乐观锁,在EXEC命令执行之前,用于监视指定数量键,如果监视中某任意键数据被修改,则服务器拒绝执行事务
例
使用watch乐观锁
打开两个客户端:
get name后先不执行,在另个一客户端修改name,则事务不会执行
修改
六、安装redis(CentOS下)
安装
[root@n1 ~]# cd /usr/local/
[root@n1 local]# wget http://download.redis.io/releases/redis-5.0.4.tar.gz
[root@n1 local]#tar xzf redis-5.0.4.tar.gz
[root@n1 local]# cd redis-5.0.4
[root@n1 redis-5.0.4]# make MALLOC=libc
[root@n1 redis-5.0.4]# make install
[root@n1 local]# mv redis-5.0.4 redis
在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。
可执行文件说明
redis-server:redis服务器
redis-cli:命令行客户端
redis-benchmark:redis性能测试工具
redis-check-aof:AOF文件修复工具
redis-check-dump:RDB文件检查工具
修改配置文件
[root@n1 ~]# vim /usr/local/redis/redis.conf
protected-mode no #关闭保护模式
daemonize yes #开启守护进程,后台运行
后台启动redis
查看端口(6379)
本地登录操作
操作数据库
[root@n1 ~]# redis-cli
插入数据
127.0.0.1:6379> set name zhang
OK
查询数据
127.0.0.1:6379> get name
"zhang"
删除键值
127.0.0.1:6379> del name
(integer) 1
验证键是否存在
127.0.0.1:6379> exists name
(integer) 0
停止redis实例
[root@n1 ~]# redis-cli shutdown
下一篇:Redis常用数据类型和操作