1、Redis是什么
Redis全称:REmote DIctionary Server(远程字典服务器)。是完全开源免费的,用C语言编写的软件。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
2、Redis能做什么
1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
2)为频繁获取最新N个数据的操作设置缓存,如:可以将最新的10条评论的ID放在Redis的List集合里面
3)模拟类似于HttpSession这种需要设定过期时间的功能
4)发布、订阅消息系统
5)定时器、计数器等等
3、为什么需要NoSQL
NoSQL = Not Only SQL(不仅仅是SQL)。泛指非关系型数据库,主流 NOSQL产品有 redis,mongodb等。
随着互联网 2.0网站的兴起,传统的关系型数据库在应付web2.0网站,暴露了很多难以克服的问题,而非关系型数据库则由于其本身的特点得到了非常迅速的发展。
high performance ,高并发读写,动态页面展示与交互,比如微博点赞评论等操作,实时统计在线人数排行榜等
huge storage,海量数据的高效存储和访问,大型网站的用户登录系统
high scalability && high availability,高可扩展性和高可用性
二、Linux 环境下安装RedisRedis的版本号:
- 版本号第二位为奇数,为非稳定版本
- 版本号第二为偶数,为稳定版本,比如5.0.5
1、从官网下载Redis源码包并上传到家目录
Redis的官方文档相当丰富和齐全:- http://redis.io/
- http://www.redis.cn/
- redis命令大全:http://www.redis.cn/commands.html
这里安装上传下载工具包 # rz(上传) 及 # sz(下载),(也可以使用xftp上传):# yum install -y lrzsz
[root@centos7 ~]# yum install -y lrzsz
[root@centos7 ~]# rz
rz waiting to receive.
zmodem trl+C ȡ
100% 1929 KB 1929 KB/s 00:00:01 0 Errors
注意:Redis进行源码安装,需要 c 语言的编译环境,所以安装 Redis 之前确保 gcc,否则会出现后面的错误
[root@centos7 ~]# yum install -y gcc
2、解压 Redis 源码包,进入解压目录下
[root@centos7 ~]# tar -zxvf redis-5.0.5.tar.gz
...
[root@centos7 ~]# cd redis-5.0.5/
3、make 命令编译并安装,这里指定安装的目录是 /usr/local/redis (目录不存在时会自己创建)
[root@centos7 redis-5.0.5]# make PREFIX=/usr/local/redis install
Redis 安装就搞定了。最后把安装包里的 redis.conf 配置文件复制到安装目录。
注意:如果不复制,Redis 会使用用一套默认配置启动,这个配置没法修改,不可控制。所以复制之后,后面可以进行集群配置
[root@centos7 redis-5.0.5]# cp redis.conf /usr/local/redis/
4、如果没有安装 gcc 就执行上面的 make命令,报错如下:
然后安装 gcc 之后,又报错:
出现致命错误是因为:Redis在编译时便会指定内存分配器;内存分配器可以是 libc 、jemalloc或者tcmalloc,默认是jemalloc。jemalloc 作为Redis的默认内存分配器,在减小内存碎片方面做的相对比较好。
两个解决方案:
1)不用这个内存分配器,用libc,make MALLOC=libc,(不推荐建议使用用)
2)进入deps目录,手动编译 jemalloc...等。操作如下(推荐使用)
# 安装gcc
[root@centos7 redis-5.0.5]# yum install -y gcc
...
# 手动编译jemalloc等
[root@centos7 redis-5.0.5]# cd ./deps
[root@centos7 deps]# make hiredis jemalloc linenoise lua
...
# 安装redis
[root@centos7 deps]# cd ..
[root@centos7 redis-5.0.5]# make PREFIX=/usr/local/redis install
三、Redis的启动和关闭
启动Redis
1、直接启动,不建议使用,因为这种启动方法的 redis不能进行集群
[root@centos7 ~]# /usr/local/redis/bin/redis-server
2、指定配置文件启动(推荐使用),可以进行集群
1)vi修改 redis.conf 配置文件的136行(开启守候进程):daemonize no 改为 yes
[root@centos7 bin]# cd /usr/local/redis/
[root@centos7 redis]# vim ./redis.conf
2)使用指定配置文件启动:
[root@centos7 redis]# ./bin/redis-server ./redis.conf
14490:C 27 Apr 2020 21:46:55.613 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
14490:C 27 Apr 2020 21:46:55.613 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=14490, just started
14490:C 27 Apr 2020 21:46:55.613 # Configuration loaded
[root@centos7 redis]#
关闭Redis
1、通过结束 Redis进程的方式关闭,不建议使用:# kill -9 pid
[root@centos7 redis]# ps -ef | grep redis
root 14491 1 0 21:46 ? 00:00:00 ./bin/redis-server 127.0.0.1:6379
root 14496 9458 0 21:47 pts/0 00:00:00 grep --color=auto redis
[root@centos7 redis]# kill -9 14491
2、在 redis-cli 中,调用 shutdown 命令(推荐使用)
- shutdown nosave|save 默认save,执行持久化
[root@centos7 redis]# ./bin/redis-server ./redis.conf
14508:C 27 Apr 2020 21:54:49.418 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
14508:C 27 Apr 2020 21:54:49.418 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=14508, just started
14508:C 27 Apr 2020 21:54:49.418 # Configuration loaded
[root@centos7 redis]# ./bin/redis-cli shutdown
四、使用 redis-cli 连接到Redis
1、已启动 Redis,连接本机的本机的 redis,使用的是默认端口 6379
[root@centos7 redis]# ./bin/redis-cli
127.0.0.1:6379>
2、指定 ip 地址和端口连接 redis:# ./bin/redis-cli -h ip地址 -p 端口号,
如果配置了密码,连接进入之后,使用 auth 命令。
[root@centos7 redis]# ./bin/redis-cli -h 192.168.198.5 -p 6379
192.168.198.5:6379> QUIT
注意:使用 ip 地址连接 redis,在默认的 bind 并添加远程 ip, 修改配置文件需要重启redis。
或者注释掉 bind(不推荐),注释掉,Redis 会进去受保护模式,读写值就会被拒绝,除非在配置文件中关闭受保护模式(88行 protected-mode no)。
3、退出连接,quit
ends~