Redis是一个高性能的内存数据库,它体积轻巧性能又高,在企业中被广泛使用。

安装Redis

Windows安装

Redis是为Linux系统设计的,但是也有团队为Windows做了移植。我们可以到这里下载Redis的Windows版本。

如果使用NuGet或者Chocolatey的话,也可以用这些工具安装Windows版的Redis。

# Nuget
PM> Install-Package Redis-64 # Chocolatey
choco install redis-64

不过我不准备使用Windows 移植版的Redis,因为Redis是为Linux设计的,而且大部分公司使用的服务器也是Linux系统,所以我们不妨直接学习Linux版本Redis的安装和使用。

Linux安装

相比之下,由于Redis一开始就是设计在Linux上使用的,所以Linux安装就比较简单了。主流的Linux系统的官方软件仓库中应该都有Redis软件,所以直接可以利用相应的包管理器安装。

例如,在ArchLinux中,使用下面命令就可以安装redis了。

sudo pacman -S redis

对于其他Linux系统,使用它们的包管理器安装Redis即可。

安装完成之后,使用下面的命令启动Redis。

# 让redis开机自启
systemctl enable redis # 启动redis
systemctl start redis

Docker安装

其实最好的办法还是使用Docker安装Redis,由于Docker的容器化特性,我们可以在镜像中打包一个配置好的Redis。比方说,著名的Gitlab的Docker镜像中就直接打包了Ruby、PostGreSQL、Redis等软件,我们不需要任何额外配置即可使用整合好的Gitlab。

首先拉取Redis镜像。

docker pull redis

然后启动Redis镜像,其中name可以修改为自己想要的名字。

docker run --name some-redis -d redis

如果需要持久化数据,需要在启动命令中指定数据卷,下面的命令默认把数据存放到/data。如果需要自定义数据卷的位置,可以使用--volumes-from some-volume-container 或 -v /docker/host/dir:/data参数。

docker run --name some-redis -d redis redis-server --appendonly yes

要使用redis-cli连接Redis服务器,使用下面的命令。

docker run -it --link some-redis:redis --rm redis redis-cli -h redis -p 6379

详细配置可以参考Docker官方文档

配置Redis

redis.conf

在Linux下,Redis的配置文件默认在/etc/redis.conf(可能根据操作系统不同而产生变化)。配置文件有很多注释,仔细阅读之后我们就可以配置Redis了。完整的样例文件可以看这里,techstay/redis.conf点击预览。文件看起来很大,其实大部分都是注释,实际配置并不多。

下面来简单介绍一些比较重要的配置。由于我也是刚刚开始学习Redis,所以不会介绍后面的高级配置,这里只介绍最基本最重要的配置。

单位换算

如果需要设置Redis的内存大小和文件大小,就需要设置具体的数值。单位换算按照下面的进制进行换算,不带b的是1000进制,带b的是1024进制。存储单位不区分大小写,所以gbgBGB等单位都是相同的。

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes

IP地址

bind配置Redis服务器所绑定的IP地址,默认情况下是本地回环地址。如果不指定的话,Redis就会运行在所有网络接口上。

bind 127.0.0.1

不过需要注意,绑定到所有接口可能会引起安全问题。所以考虑到安全问题,最好让Redis只绑定固定的几个接口。

保护模式

Redis可以运行在保护模式,这需要显示将保护模式打开。

protected-mode yes

如果保护模式打开,并且:1)没有显式使用bind绑定具体的IP地址;2)没有设置密码,那么Redis只会监听本地IPv4和IPv6的回环地址(127.0.0.1::1)以及Unix Domain Sockets。

端口号

默认端口号是6379,如果需要较高的安全性也可以自定义端口号。

port 6379

客户端超时

当客户端在指定时间(单位:)内没有任何动作时,Redis就会断开连接。默认是0,表示不断开。

timeout 0

TCP连接存货时间

这个参数指定TCP连接会保持多少秒,默认是300秒。

tcp-keepalive 300

守护模式

指定Redis是否以守护模式运行。

daemonize no

日志打印

先说说日志级别,有debugverbosenoticewarning四种日志级别,显示的信息从多到少。如果需要调试的话,使用前两种日志级别,如果需要在生产环境中使用,推荐使用后两种级别。默认值是notice

loglevel notice

还可以指定日志文件的位置,如果不指定的话,默认会直接在控制台输出日志信息。如果Redis作为守护模式运行,而且没有指定日志文件位置, 那么日志会输出到/dev/null

logfile ""

保存到文件

可以设置Redis定期将内存数据保存到文件,以免服务器关闭之后文件丢失。在这里可以设置多个值,例如下面第一行表示每隔900秒,如果至少有1个键发生改变则保存数据;第三行表示每隔60秒,如果至少10000个键发生改变则保存数据。

save 900 1
save 300 10
save 60 10000

密码

使用密码可以提高Redis服务器的安全性。需要注意,由于Redis的高性能特性,一个用户一秒钟最高可以尝试15万次密码。所以为了保证安全性,密码需要尽量设置的长一些。

requirepass foobared

配置文件还有其他一些配置,我就不介绍了。如果需要更详细的配置可以直接查看配置文件的注释,对于每个配置项都有详细的介绍。

Docker配置

Docker的Redis镜像没有redis.conf文件,如果你需要这个文件来配置Redis,可以自己打包一个包含redis.conf的镜像。这需要编写类似下面这样的Dockerfile

FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

当然其实完全不用这么麻烦,直接在启动Redis镜像的时候就可以指定配置文件的位置。这种办法比较灵活,而且很简单,所以如果没有特别需求的话这样就可以了。

docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf

使用Redis

redis-cli

首先来介绍一下Redis的命令行工具redis-cli,我们对Redis服务器进行操作主要通过它来进行。

如果要查看帮助信息,可以使用redis-cli --help命令,下面列出了一部分输出。

# redis-cli --help
redis-cli 3.2.8 Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1).
-p <port> Server port (default: 6379).
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server.

如果主机名和端口号都是默认值的话,可以直接输入redis-cli进入交互式界面。如果需要连接到其他主机上的Redis服务器,可以使用-h参数指定主机名,使用-p参数指定端口号,使用-a参数指定密码。

# redis-cli
127.0.0.1:6379>

Redis命令

进入交互式界面之后,我们可以使用Redis提供的各种命令操作服务器了。Redis的命令有很多,作用也各不相同。大家可以到Redis Command查看所有命令和用途。如果不喜欢英文的话,可以查看Redis 命令参考,这是汉化过的命令文档。

存取数据

这里我就列举一些常用的命令。首先是存取命令,使用set 键 值来保存一个数据,保存成功后会返回OK

127.0.0.1:6379> set fuck fuck
OK

保存之后,可以使用get 键来获取这个值。

127.0.0.1:6379> get fuck
"fuck"

查询键

keys 模式用于查询符合模式的键的名字,支持的查询方式是GLOB类型的,支持*?[a-b][^a]等通配符。

127.0.0.1:6379> keys *
1) "fuck"
2) "food_num"

配置Redis

和存取命令类似,还有config getconfig set用于获取和设置配置文件中的配置。比如说,要获取配置文件的所有值,使用下面的命令。

127.0.0.1:6379> config get *

再比如,如果要设置Redis的登录密码,可以这么做。然后退出redis-cli并重新连接,即可生效。

127.0.0.1:6379> config set requirepass 123456

认证

如果Redis服务器设置了密码,在进行任何操作之前都需要认证才能进行,否则会提示NOAUTH

127.0.0.1:6379> get food_num
(error) NOAUTH Authentication required.

这时候需要使用auth命令进行认证,才能继续操作。

127.0.0.1:6379> auth 123456

当然,也可以直接在redis-cli连接的时候使用-a参数指定密码。

redis-cli -a 123456

超时和持久

可以使用expire命令为一个键设置超时值(单位:秒),在这里时间之后该值会被删除。

127.0.0.1:6379> expire fuck 10
(integer) 1

如果10秒之后再次查看该值,会发现已经不存在了。

127.0.0.1:6379> get fuck
(nil)

相应的,还有persist命令,会将该数据的超时值取消,这样只要数据库还在,这个数据就会一直存在。

127.0.0.1:6379> persist fuck
(integer) 0

除了使用expire命令为已存在的值设置超时值,还可以在设置数据的时候直接指定超时值。

set key 100 ex 10

在指定了超时值之后,可以使用ttl命令查看距离超时值还剩多少时间。

 
127.0.0.1:6379> ttl fuck
(integer) 17

退出

最后,可以使用quit命令退出命令行界面。

原文链接:https://segmentfault.com/a/1190000009247586

安装和使用Redis【转】的更多相关文章

  1. 一台电脑多个文件夹安装多个Redis服务

    思路: 在弄Mongodb的时候,可以在不同的文件夹下面运行不同的mongodb实例 那么Redis可以吗 现在添加一个Redis文件夹,里面放置redis,修改配置端口为6378 将以前的那个Red ...

  2. Ubuntu 安装和配置redis数据库

    Ubuntu 14.04下安装和配置redis数据库 小编现在在写一个分布式爬虫,要用到这个数据库,所以分享一下小编是如何安装和配置的,希望对大家有帮助. 工具/原料   Ubuntu 系统电脑一台 ...

  3. linux下安装php扩展redis缓存

    下载phpredis安装包 wget https://github.com/nicolasff/phpredis/tarball/master 在下载目录解压phpredis.tar.gz tar z ...

  4. linux下php7安装memcached、redis扩展

    linux下php7安装memcached.redis扩展 1.php7安装Memcached扩展 比如说我现在使用了最新的 Ubuntu 16.04,虽然内置了 PHP 7 源,但 memcache ...

  5. 使用docker安装mysql和redis

    本文介绍在linux下使用docker安装mysql和redis. 原文地址:代码汇个人博客 http://www.codehui.net/info/59.html 测试环境:centos7.6,do ...

  6. 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

    记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...

  7. linux环境下快速安装Mariadb和Redis

    一 Mariadb(Mysql)篇 1.新建一个yum源仓库 touch /etc/yum.repos.d/Mariadb.repo 2.在这个yum源仓库文件中,添加仓库url地址 [mariadb ...

  8. CentOS7攻克日记(四) —— 安装Mysql和Redis

    这一篇主要安装mysql,redis等数据库   在这篇开始之前,有一个坑,上一篇更改python软连接的时候,尽量都用名字是python3来软连接/usr/../bin/python3.6,把名字是 ...

  9. linux下如何安装mysql和redis

    linux下如何安装mysql(mariadb) linux下如何安装软件? 1. yum安装软件也得注意,一个是配置yum源 1.我们当前的是阿里云的yum源(下载速度特别快) 通过 yum ins ...

  10. windows下安装和配置redis

    1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...

随机推荐

  1. Gitlab仓库搭建和免密使用gitlab

    Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的 ...

  2. MySQL 对比数据库的表结构

    有时候,需要对比一下测试环境和生产环境中,数据库的表结构是否有所差异.有两个常用的工具. AmpNmp.DatabaseCompare GUI 界面,支持多种数据库(MySQL.SQL Server. ...

  3. OAuth 2.0 综述

    OAuth 2.0 rfc6749 规范 OAuth 2.0 rfc6749 规范-带目录,阅读 RFC 文档的 工具 OAuth 官网 OAuth2 核心 角色 Token 类型 access to ...

  4. Vagrant 手册之同步目录 - VirtualBox

    原文地址 如果你使用的 provider 是 VirtualBox,那么 VirtualBox 同步目录就是默认的同步目录类型.这些同步目录使用 VirtualBox 的共享目录系统来同步客户机跟宿主 ...

  5. 【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-任意rep ...

  6. Hadoop: 在Azure Cluster上使用MapReduce

    Azure对于学生账户有260刀的免费试用,火急火燎地创建Hadoop Cluster!本例子是使用Hadoop MapReduce来统计一本电子书中各个单词的出现个数. Let's get hand ...

  7. android handler 调用原理

    1,调度原理 andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageExchange) ...

  8. 诊断:MRP0: Background Media Recovery process shutdown with error ORA-19909

    oracle12c data guard,从库无法应用日志,检查alert日至发现 2019-10-21T14:55:40.087819+08:00 MRP0: Background Media Re ...

  9. 4、、多变量线性回归(Linear Regression with Multiple Variables)

    4.1 多维特征 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x1,x2,...xn) 增添更多特征后, ...

  10. python依赖包整体迁移方法(pip)

    做个记录 python依赖包整体迁移方法