开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情
Redis的配置、启动、操作
一、启动Redis
1.默认配置启动
执行redis-server命令,按照默认的redis.conf配置文件中的配置启动Redis,如下:
因为默认配置无法自定义配置。所以该方式不会再生产环境中使用
2.运行配置启动
在命令redis-server后加上要修改的配置名和值(可以设置多对),没有设置的将使用默认配置。
如:redis-server --port 6389 –timeout 3000
虽然可以自定义配置。但是如果修改的配置较多则应该保存在配置文件中,不建议使用这种方式。
(配置文件启动
将配置文件写到指定的redis.conf文件里,启动时在redis-server命令后,指定配置文件的路径,则redis会按照配置文件redis.conf的配置进行启动。例如:redis-server redis.conf
启动
进入etc目录下 启动redis
sudo ../bin/redis-server ./redis.conf
停止 ./redis-cli shutdown 注释:这里关闭默认端口号 ./redis-cli -h 127.0.0.1 -p 7001 shutdown 注释:关闭指定端口号 实时查看日志 tail -f /usr/local/redis/log-redis.log //----------------端口占用问题处理 $ ps aux | grep redis Find the port that its running on.. In my case..
MyUser 8821 0.0 0.0 2459704 596 ?? S 4:54PM 0:03.40 redis-server *:6379
And then close the port manually
$ kill -9 8821
Re-run redis
$ redis-server
//------------------同一台机器启动多个实例redis
Sorry, the cluster configuration file nodes.conf is already used by a different Redis Cluster node. Please make sure that differen t nodes use different cluster configuration files.
需要在
redis.conf配置文件中配置
cluster-config-file nodes.conf
为不同名称
二、 Redis命令行客户端redis-cli
1 redis-cli连接服务器的方式
(1)集群交互式
redis-cli -c -h 10.3.34.101 -p 7000
(2)单机交互方式
redis-cli -c -h 10.3.34.101 -p 7000
(3)命令方式
redis-cli -c -h 10.3.34.101 -p 7000 set aaa 1
以上命令,如果没有-h参数,默认连接127.0.0.1,如果没有-p参数,默认连接6370端口
三、停止Redis服务
(1)通过redis-cli连接服务器后执行shutdown命令,则执行停止redis服务操作。
(2)可以使用shutdown命令关闭redis服务器外,还可以使用kill+进程号的方式关闭redis服务。
(3)不要使用Kill 9方式关闭redis进程,这样redis不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成AOF和复制丢失数据的情况
(4)shutdown还有一个参数,代表关闭redis服务前是否生产持久化文件
shutdown save|nosave
Redis不使用 keys 命令获取键值信息的方法
这个问题可能看起来很奇怪,但很多 redis 集群会有一个统一的入口,入口会作兼容 redis 命令的代理,一般出于新能考虑是禁止使用 keys 命令来获取键值信息的,但是可以通过 scan 命令来代替 keys
2. 使用 keys 的方法
127.0.0.1:6379> KEYS *
1) "_kombu.binding.test_queue"
2) "a8e620b9-e52e-3498-8a1c-448f35783058"
3) "_kombu.binding.celery"
3. 使用 scan 的方法
127.0.0.1:6379> DBSIZE
(integer) 3
127.0.0.1:6379> SCAN 0 MATCH * COUNT 3
1) "5"
2) 1) "a8e620b9-e52e-3498-8a1c-448f35783058"
2) "_kombu.binding.test_queue"
3) "_kombu.binding.celery"
简单说明
SCAN 命令 (以及相关的 SSCAN/HSCAN/ZSCAN,分别用于 SET/HASH/ZSET) 用于增量式的遍历一个集合中的元素。因为其增量特性 (每次使用只返回一小部分元素),所以在生产环境中可以用来替代 KEYS 或 SMEMBERS 命令 (KEYS 或 SMEMBERS 命令可能会因为返回的元素过多而阻塞 redis)
所以在生产环境中即便 redis 服务支持 keys 命令,也应该用 scan 来代替