如何在Ubuntu Linux 16.04上安装Redis服务器

时间:2020-01-09 10:39:25  来源:igfitidea点击:

Redis是一个免费且开源(BSD许可)的键值存储。
它是内存中的数据结构存储,用作数据库,缓存和消息代理。
如何在Ubuntu Linux 16.04 LTS服务器上安装Redis服务器?

Redis用于缓存数据和其他目的。
它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集,位图,超级日志和带有半径查询的地理空间索引。
该页面显示了如何使用apt命令/apt-get命令在Ubuntu Linux 16.04 LTS服务器上安装和快速配置Redis服务器。

在Ubuntu Linux上安装Redis

执行以下apt命令:

$ sudo apt update
$ sudo apt install redis-server

如何启动/停止/重启Redis服务器?

您需要使用systemctl命令:

$ sudo systemctl stop redis # <- stop the server
$ sudo systemctl start redis # <- start the server
$ sudo systemctl restart redis # <- restart the server
$ sudo systemctl status redis # <- show the status of redis server

redis-server.service高级键值存储状态

Redis服务器配置

您需要使用文本编辑器(例如vi命令/joe命令)编辑文件/etc/redis/redis.conf:

$ sudo vi /etc/redis/redis.conf

设置端口(默认6379)

port 6379

确保Redis仅侦听回送IP地址。
这是一项安全功能。

bind 127.0.0.1

如果您使用的是VPN/VLAN,请设置网络地址,例如192.168.1.50。
通过以下操作,Apache或其他集群成员可以与Redis对话盒:

bind 192.168.1.50

设置同时连接的最大客户端数(默认为10000):

maxclients 20000

定义当达到最大内存时Redis将如何选择要删除的内容。

maxmemory-policy noeviction

您可以选择以下五个行为/策略:

  • volatile-lru使用LRU算法删除具有过期设置的密钥
  • allkeys-lru根据LRU算法删除任何密钥
  • volatile-random删除带有过期设置的随机密钥
  • allkeys-random删除一个随机密钥,任何密钥
  • volatile-ttl删除最接近到期时间(较小的TTL)的密钥
  • noeviction根本不会过期,只是在写操作时返回一个错误

当达到maxmemory时,使用LRU算法删除具有过期集的密钥。
如下更新:

maxmemory-policy allkeys-lru

将此Redis服务器的最大内存限制设置为1gb/1024mb:

maxmemory 1024mb

保存并关闭文件。
重新启动服务器:

$ sudo systemctl restart redis

验证使用netstat命令/ss命令运行的Redis服务器:

$ netstat -tulpn | grep :6379

或者

$ ss -tulpn

如何使用ufw打开端口6379?

UFW是简单防火墙的首字母缩写。
它用于管理Linux防火墙,旨在为用户提供易于使用的界面。
要允许来自特定IP /子网的传入Redis服务器连接(TCP端口6379),请运行:

$ sudo ufw allow from {IP_SUB/net} to any port 6379 proto tcp
$ sudo ufw allow from 192.168.1.0/24 to any port 6379 \
proto tcp comment 'Open Redis server tcp port'

redis-cli

redis-cli为Redis服务器提供了一个简单的命令行界面:

$ redis-cli
`127.0.0.1:6379>`

找出服务器信息

在redis-cli提示符下执行以下命令:

127.0.0.1:6379> INFO

输出示例:
INFO命令以一种易于计算机解析和易于阅读的格式返回有关服务器的信息和统计信息

请注意,您也可以按以下方式执行命令:

$ redis-cli INFO

测试Redis服务器连接

执行以下命令:

$ redis-cli PING
`PONG`

如何使用Redis服务器存储键值?

语法如下,以设置名为www.theitroad.local的键来命名域:

$ redis-cli set domain "www.theitroad.local"
`OK`

要检索名为domain的键的值,请运行:

$ redis-cli get domain
`"www.theitroad.local"`

如果重新启动了裸机/VM或redis服务,则密钥的值仍应可用:

$ sudo systemctl restart redis
$ redis-cli get domain

如何删除名为域的密钥?

$ redis-cli del domain
`(integer) 1`