安装和使用Redis【转】
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
进制。存储单位不区分大小写,所以gb
、gB
、GB
等单位都是相同的。
# 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
日志打印
先说说日志级别,有debug
、verbose
、notice
和warning
四种日志级别,显示的信息从多到少。如果需要调试的话,使用前两种日志级别,如果需要在生产环境中使用,推荐使用后两种级别。默认值是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 get
和config 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【转】的更多相关文章
- 一台电脑多个文件夹安装多个Redis服务
思路: 在弄Mongodb的时候,可以在不同的文件夹下面运行不同的mongodb实例 那么Redis可以吗 现在添加一个Redis文件夹,里面放置redis,修改配置端口为6378 将以前的那个Red ...
- Ubuntu 安装和配置redis数据库
Ubuntu 14.04下安装和配置redis数据库 小编现在在写一个分布式爬虫,要用到这个数据库,所以分享一下小编是如何安装和配置的,希望对大家有帮助. 工具/原料 Ubuntu 系统电脑一台 ...
- linux下安装php扩展redis缓存
下载phpredis安装包 wget https://github.com/nicolasff/phpredis/tarball/master 在下载目录解压phpredis.tar.gz tar z ...
- linux下php7安装memcached、redis扩展
linux下php7安装memcached.redis扩展 1.php7安装Memcached扩展 比如说我现在使用了最新的 Ubuntu 16.04,虽然内置了 PHP 7 源,但 memcache ...
- 使用docker安装mysql和redis
本文介绍在linux下使用docker安装mysql和redis. 原文地址:代码汇个人博客 http://www.codehui.net/info/59.html 测试环境:centos7.6,do ...
- 记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb
记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb 前段时间我个人Google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服 ...
- linux环境下快速安装Mariadb和Redis
一 Mariadb(Mysql)篇 1.新建一个yum源仓库 touch /etc/yum.repos.d/Mariadb.repo 2.在这个yum源仓库文件中,添加仓库url地址 [mariadb ...
- CentOS7攻克日记(四) —— 安装Mysql和Redis
这一篇主要安装mysql,redis等数据库 在这篇开始之前,有一个坑,上一篇更改python软连接的时候,尽量都用名字是python3来软连接/usr/../bin/python3.6,把名字是 ...
- linux下如何安装mysql和redis
linux下如何安装mysql(mariadb) linux下如何安装软件? 1. yum安装软件也得注意,一个是配置yum源 1.我们当前的是阿里云的yum源(下载速度特别快) 通过 yum ins ...
- windows下安装和配置redis
1.windows下安装和配置redis 1.1 下载: 官网(linux下载地址):https://redis.io/ Windows系统下载地址:https://github.com/MSOpen ...
随机推荐
- 【小刘的linux学习笔记 】——01认识操作系统
1.操作系统的地位 计算机系统由硬件和软件两部分组成.通常把未配置软件的计算机称为裸机.直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率. 操作系统(OS,Operation System ...
- 20190817 On Java8 第七章 封装
第七章 封装 访问控制权限的等级,从"最大权限"到"最小权限"依次是:public,protected,包访问权限(没有关键字)和 private. 包的概念 ...
- Powershell read XML format config file
upload.xml<?xml version="1.0" ?> <ftpConfig> <Protocol>ftp</Protocol& ...
- HashMap -双列集合的遍历与常用的方法
package cn.learn.Map; /* java.util.Hashtable<k,y> implements Map<k,v> 早期双列集合,jdk1.0开始 同步 ...
- HashSet -无序,不重复集合
package cn.learn.collection.Set; import java.util.Objects; public class IsPerson { private int age; ...
- [Codeforces 997C]Sky Full of Stars(排列组合+容斥原理)
[Codeforces 997C]Sky Full of Stars(排列组合+容斥原理) 题面 用3种颜色对\(n×n\)的格子染色,问至少有一行或一列只有一种颜色的方案数.\((n≤10^6)\) ...
- Codeforces 1110C (思维+数论)
题面 传送门 分析 这种数据范围比较大的题最好的方法是先暴力打表找规律 通过打表,可以发现规律如下: 定义\(x=2^{log_2a+1}\) (注意,cf官方题解这里写错了,官方题解中定义\(x=2 ...
- U33405 纽约 (二分)
[题目描述] 牧民 Azone 需要多次往返于两个草场之间运输家当.为了顺利转场,Azone 决定花费 w元津巴布韦币,购买一辆载重为 w 的汽车.共有 n 件家具需要搬运,每件家具的重量为 wi ...
- Windows组决策
https://blog.csdn.net/wangjunjun2008/article/details/82426587
- JVM(8)之 Stop The World
开发十年,就只剩下这套架构体系了! >>> 小伙伴还记得上一篇中我们留下的一个问题吗?什么是停顿类型!经过前几章的学习,我们知道垃圾回收首先是要经过标记的.对象被标记后就会根据不 ...