Redis 介绍
- Redis 是一个开源的 key-value 存储系统。
- 和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string (字符串)、list (链表)、set (集合)、zset (sorted set –有序集合) 和 hash(哈希类型)。
- 这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
- 在此基础上,Redis 支持各种不同方式的排序。
- 与 memcached 一样,为了保证效率,数据都是缓存在内存中。
- 区别的是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
- 并且在此基础上实现了 master-slave (主从) 同步。
Redis应用场景
- 配合关系型数据库做高速缓存
- 高频次,热门访问的数据,降低数据库 IO。
- 分布式架构,做 session 共享。
- 多样的数据结构存储持久化数据
-
相关技术
Redis 使用的是单线程 + 多路 IO 复用技术:
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用 select 和 poll 函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
串行 vs 多线程 + 锁(memcached) vs 单线程 + 多路 IO 复用 (Redis)(与 Memcache 三点不同:支持多数据类型,支持持久化,单线程 + 多路 IO 复用)
Redis安装
Windows安装
- Windows版本下载地址
- 解压后就是这样
- 在解压后的目录下打开cmd,运行
redis-server.exe redis.windows.conf
,当然也可以把当前目录加入到环境变量中。
如下图就是运行Redis成功了,默认开启端口6379
- 这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了
安装在win服务器外网访问redis
修改redis.windows.conf
文件里面的东西
# bind 127.0.0.1
protected-mode no
port 你要开的端口
requirepass 你的密码
然后就可以通过远程服务器的ip+port+密码进行连接访问了
Linux安装
Redis官方下载地址
用Xftp链接远程服务器,把下载的Redis文件放在/opt目录里面
打开XShell,进入/opt目录,就能看到这个文件
需要gcc,先检查有没有gcc,gcc --version
,没有就安装,yum install gcc
然后解压这个文件tar -zxvf readis-6.2.6.tar.gz
解压完成后,进入readis-6.2.6目录下cd redis-6.2.6
,执行make命令进行编译make
编译完成后,执行安装make install
安装完成后,进入cd /usr/local/bin
,就能看到Redis的相关东西了,就说明安装成功了
- redis-benchmark:性能测试工具
- redis-check-aof:修复有问题的AOF文件
- redis-check-dump:复制有问题的dump.rdb文件
- redis-sentinel:Redis集群使用
- redis-server:Redis服务器启动命令
- redis-cli:客户端,操作入口
启动Redis
前台启动(不推荐)
前台启动,命令行窗口不能关闭,否则服务器停止
直接输入命令redis-server
,默认端口就是6379
后台启动
进入到cd /opt/redis-6.2.6
,把redis.conf复制到etc目录cp redis.comf /etc/redis.conf
,方便,其他目录也可以
进入etc目录下cd /etc
,修改刚才复制的文件vi redis.conf
,把里面的daemonize no
改成deamonize yes
(我直接用的Xftp修改的)。
然后进入cd /usr/local/bin
启动Redis,redis-server /etc/redis.conf
,这里的redis.conf是在etc目录下的被改过的那个。启动完了没反应,我们可以查看一下ps -ef | grep redis
,发现在6379端口运行
可以使用redis-cli
进行链接redis,下面出现了IP+6379端口,就说明链接成功了
输入exit
可以退出redis,但是不是关闭
关闭Redis
前台启动关闭Redis
后台启动关闭Redis
- 输入
shutdown
运行 - 或者找到进程号,kill命令杀掉