说明
- Redis-01-安装和常用配置
- 官方文档:https://redis.io/documentation
- Redis命令参考:http://redisdoc.com/
核心概念
》NoSQL
- Not only SQL
- 非关系型数据库
- 不支持acid,但支持事务
- 目前主流nosql
- Memcache
- Redis
- MangoDB
- 数据存储形式
- 行式数据库
- 一个表中每一行存储为一个单元,单行查询效率高
- 列式数据库
- 一个表中每一列存储为一个单元,单列查询效率高
- 行式数据库
》安装
- 安装步骤省略,自行安装或参照我相关文章
- 默认安装文件
[root@192 bin]# pwd /usr/local/redis/bin [root@192 bin]# ll total 32772 -rwxr-xr-x. 1 root root 4367136 Dec 13 19:34 redis-benchmark -rwxr-xr-x. 1 root root 8125440 Dec 13 19:34 redis-check-aof -rwxr-xr-x. 1 root root 8125440 Dec 13 19:34 redis-check-rdb -rwxr-xr-x. 1 root root 4808152 Dec 13 19:34 redis-cli lrwxrwxrwx. 1 root root 12 Dec 13 19:34 redis-sentinel -> redis-server -rwxr-xr-x. 1 root root 8125440 Dec 13 19:34 redis-server
- redis-benchmark:性能测试工具
- redis-check-aof:aof文件修复工具
- redis-check-rdb:dumb.rdb文件修复工具
- redis-cli:客户端
- redis-sentinel:集群工具
- redis-server:服务端
》配置文件redis.conf
- 如果你手动安装,建议安装完拷贝到:/etc/redis.conf
- 使用方法:/path/to/redis-server /etc/redis.conf
- 可以手动把redis做成服务并设置开机自启动,具体搜索我的相关文章
- 常用配置项
bind 127.0.0.1 # 绑定本机访问,要想其他机器访问注释该行或者增加相应的IP protected-mode yes # 保护模式,要想其他机器访问也要改这个 port 6379 # 端口 timeout 0 # 超时时间,客户端连接后超过指定值未操作将会被服务器断开,默认0为永不超时 tcp-keepalive 300 # 心跳检测间隔时间 daemonize yes # 是否后台启动 pidfile /var/run/redis.pid # pid文件,每个Redis实例需要一个pidfile loglevel notice # 日志级别 logfile "" # 日志文件,默认/dev/null databases 16 # 数据库数量,默认0-15 requirepass foobared # 密码,默认关闭 maxclients 10000 # 最大连接数,默认10000 maxmemory <bytes> # 最大内存占用,字节数,当达到内存限制时,Redis将尝试删除键 ################################ REDIS CLUSTER ############################### # 该栏目下是集群相关配置
》常用服务命令
- 启动:redis-server /etc/redis.conf
- 关闭:redis-cli shutdown 或者redis-cli登陆后执行shutdown
》相关知识点
- 默认端口6369的由来:意大利舞女Alissa Merz的名字中的M(6)e(3)r(7)z(9)
- Redis性能高的一个原因:Redis是单线程+多路IO复用技术
》关于远程访问
- 影响远程访问的因素
- 检查服务器运营商后台放行了端口
- 检查服务器内部关闭了防火墙,或防火墙放行了相关端口
- 检查Redis配置了远程访问
- 注释bind
- 关闭保护模式
- 设置密码
- 检查是否启用了iptables服务(比如你如果是使用lnmp.org安装的环境,默认会开启该服务),如果有就将其关闭或添加放行规则
- 停止iptables服务
- 取消iptables开机自启动
》关于Redis6新增功能
- 访问控制(ACL)
- 常用命令
# 查看用户和权限列表 127.0.0.1:6379> acl list # 查看添加权限指令类别 127.0.0.1:6379> acl cat # 查看当前用户 127.0.0.1:6379> acl whoami # 添加用户 127.0.0.1:6379> acl setuser user001 # 修改用户及权限 # ——语法:acl setuser <用户名> <是否启用> ><密码> ~<key前缀>* +<权限匹配规则> 127.0.0.1:6379> acl setuser user001 on >mypassword ~cached:* +get
- 常用命令
- IO多线程
- 只是客户端交互部分的网络IO可以多线程,数据存储还是单线程+多路IO复用
- 工具支持Cluster
- 注意:这个功能Redis5+就开始支持了