Redis安装
Redis的应用
- 为热点数据加速查询(主要场景),如热点商品,热点新闻,热点资讯,推广类等高访问量信息等
- 任务队列,如秒杀,抢购,购票排队等
- 及时信息查询,如各位排行榜,各类网站访问统计,公交到站信息,在线人数信息(聊天室,网站)设备信号等
- 时效性信息控制,如验证码控制,投票控制等
- 分布式数据共享,如分布式集群架构中的session分离
- 消息队列
- 分布式锁子
Redis的下载
基于linux环境安装Redis
- Redis版本 5.0.4
- 服务器版本 Linux CentOS 7.6 64位
下载Redis
进入官网找到下载地址 https://redis.io/download
[root@kk ~]# wget http://download.redis.io/releases/redis-6.0.10.tar.gz
[root@kk data]# tar -xf redis-6.0.10.tar.gz //修改redis目录名称,移动到/usr/local/redis [root@kk data]# mv redis-6.0.10 /usr/local/redis [root@kk data]# ll /usr/local/ total 4 drwxr-xr-x. 2 root root 6 Apr 11 2018 bin drwxr-xr-x. 2 root root 6 Apr 11 2018 etc drwxr-xr-x. 2 root root 6 Apr 11 2018 games drwxr-xr-x. 2 root root 6 Apr 11 2018 include drwxr-xr-x 3 root root 26 Feb 19 06:26 java drwxr-xr-x. 2 root root 6 Apr 11 2018 lib drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec drwxrwxr-x 7 root root 4096 Jan 12 22:25 redis drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin drwxr-xr-x. 5 root root 49 Feb 18 21:47 share drwxr-xr-x. 2 root root 6 Apr 11 2018 src
安装依赖包
root@kk ~]# yum -y install gcc gcc-c++ libstdc++-deve
编译
cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。
[root@kk data]# cd /usr/local/redis/ [root@kk redis]# make
安装
输入以下命令
1 | make PREFIX=/usr/local/redis install |
[root@kk redis]#make PREFIX=/usr/local/redis install
这里多了一个关键字 PREFIX=
这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,
库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在/usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis 即可删除redis。
编译安装出现错误,
make[1]: *** [server.o] Error 1 make[1]: Leaving directory `/usr/local/redis/src' make: *** [install] Error 2
下载新版本gcc root@kk redis]# gcc -v gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) [root@kk redis]# yum -y install centos-release-scl # 升级到9.1版本 [root@kk redis]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils 临时使用Gcc [root@kk redis]# scl enable devtoolset-9 bash 以上为临时启用,如果要长期使用gcc 9.1的话: [root@kk redis]# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
再次进行编译安装
[root@kk redis]# make clean make PREFIX=/usr/local/redis install
显示安装成功
启动redis
//后台
[root@kk redis]# ./bin/redis-server& ./redis.conf
//前台
[root@kk redis]# ./bin/redis-server ./redis.conf
[root@kk src]# cp /usr/local/redis/src/redis-cli /usr/local/bin
[root@kk src]# redis-cli
127.0.0.1:6379>
Redis.conf
daemonize yes #是否以后台进程运行 pidfile /var/run/redis/redis-server.pid #pid文件位置 port 6379#监听端口 bind 127.0.0.1 #绑定地址,如外网需要连接,设置0.0.0.0,如果绑定上了只能通过这个IP访问 timeout 300 #连接超时时间,单位秒 loglevel notice #日志级别,分别有: # debug :适用于开发和测试 # verbose :更详细信息,默认 # notice :适用于生产环境 # warning :只记录警告或错误信息 logfile /var/log/redis/redis-server.log #日志文件位置 syslog-enabled no #是否将日志输出到系统日志 databases 16#设置数据库数量,默认数据库为0 ############### 快照方式 ############### save 900 1 #在900s(15m)之后,至少有1个key发生变化,则快照 save 300 10 #在300s(5m)之后,至少有10个key发生变化,则快照 save 60 10000 #在60s(1m)之后,至少有1000个key发生变化,则快照 rdbcompression yes #dump时是否压缩数据 dir /var/lib/redis #数据库(dump.rdb)文件存放目录 ############### 主从复制 ############### slaveof <masterip> <masterport> #主从复制使用,用于本机redis作为slave去连接主redis masterauth <master-password> #当master设置密码认证,slave用此选项指定master认证密码 slave-serve-stale-data yes #当slave与master之间的连接断开或slave正在与master进行数据同步时,如果有slave请求,当设置为yes时,slave仍然响应请求,此时可能有问题,如果设置no时,slave会返回"SYNC with master in progress"错误信息。但INFO和SLAVEOF命令除外。 ############### 安全 ############### requirepass foobared #配置redis连接认证密码 ############### 限制 ############### maxclients 128#设置最大连接数,0为不限制 maxmemory <bytes>#内存清理策略,如果达到此值,将采取以下动作: # volatile-lru :默认策略,只对设置过期时间的key进行LRU算法删除 # allkeys-lru :删除不经常使用的key # volatile-random :随机删除即将过期的key # allkeys-random :随机删除一个key # volatile-ttl :删除即将过期的key # noeviction :不过期,写操作返回报错 maxmemory-policy volatile-lru#如果达到maxmemory值,采用此策略 maxmemory-samples 3 #默认随机选择3个key,从中淘汰最不经常用的 ############### 附加模式 ############### appendonly no #AOF持久化,是否记录更新操作日志,默认redis是异步(快照)把数据写入本地磁盘 appendfilename appendonly.aof #指定更新日志文件名 # AOF持久化三种同步策略: # appendfsync always #每次有数据发生变化时都会写入appendonly.aof # appendfsync everysec #默认方式,每秒同步一次到appendonly.aof # appendfsync no #不同步,数据不会持久化 no-appendfsync-on-rewrite no #当AOF日志文件即将增长到指定百分比时,redis通过调用BGREWRITEAOF是否自动重写AOF日志文件。 ############### 虚拟内存 ############### vm-enabled no #是否启用虚拟内存机制,虚拟内存机将数据分页存放,把很少访问的页放到swap上,内存占用多,最好关闭虚拟内存 vm-swap-file /var/lib/redis/redis.swap #虚拟内存文件位置 vm-max-memory 0 #redis使用的最大内存上限,保护redis不会因过多使用物理内存影响性能 vm-page-size 32 #每个页面的大小为32字节 vm-pages 134217728 #设置swap文件中页面数量 vm-max-threads 4 #访问swap文件的线程数 ############### 高级配置 ############### hash-max-zipmap-entries 512 #哈希表中元素(条目)总个数不超过设定数量时,采用线性紧凑格式存储来节省空间 hash-max-zipmap-value 64 #哈希表中每个value的长度不超过多少字节时,采用线性紧凑格式存储来节省空间 list-max-ziplist-entries 512 #list数据类型多少节点以下会采用去指针的紧凑存储格式 list-max-ziplist-value 64 #list数据类型节点值大小小于多少字节会采用紧凑存储格式 set-max-intset-entries 512 #set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储 activerehashing yes #是否激活重置哈希 //多服务器快捷配置 导入并加载指定配置文件信息,用于快速创建redis公共配置较多的redis实例配置文件,便于维护 include /path/server-端口号.conf
继续阅读

我的微信
这是我的微信扫一扫
评论