redis使用手记
php Predis
https://www.jianshu.com/p/8848255c7f4f
https://www.cnblogs.com/jhcyzxx/p/10479870.html
获取指定前缀的所有key
$key = $this->redis->keys('a:b:c:' . "*");
永久
$this->redis->set($key, $value);
定时
$this->redis->set($key, $value, 'EX', $expireTime);
命令行使用
redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> DEL runoobkey (integer) 1
查找redis路径和进程
whereis redis
启动
systemctl start redis
重启
systemctl restart redis.service
监控
查看当前连接数
info clients
查看最大连接数
CONFIG GET maxclients
异常处理
如何解决redis的NOAUTH Authentication required异常
1.password 替换为密码
redis 127.0.0.1:6379> auth password
2.当然还有不设密码的方式。这就需要去配置文件中去看requiredpassword或者requiredpass,是否被注释,如果没有,就把他注释了。
所以我们需要先关闭redis服务,然后在cmd进入redis的解压目录中重启服务,并且指定配置文件。命令是这样的:
redis-server.exe redis.windows.conf
3.(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请查看Redis日志的详细错误信息。
原因:强制关闭Redis快照导致不能持久化。
解决方案:运行config set stop-writes-on-bgsave-error no 命令后,关闭配置项stop-writes-on-bgsave-error解决该问题。
linux下redis配置密码
需要永久配置密码的话就去redis.conf的配置文件中找到requirepass这个参数,如下配置:
修改redis.conf配置文件
# requirepass foobared requirepass 123 指定密码123
保存后重启redis就可以了
强制停止
ps -ef | grep redis //查看进程 kill -9 19732
1) 关闭redis
/usr/local/redis/redis-cli shutdown
或者关闭远程redis
/usr/local/redis/redis-cli -h 127.0.0.1 -p 6379 shutdown
2) 重启redis
/usr/local/redis/redis-server /usr/local/redis/redis.conf
windows下redis配置密码
redis安装后目录如下:
- 最简单的启动方式是直接双击redis-server.exe
- 如果要设置密码,首先打开配置文件,要注意的是
- 这两个都是配置文件,记住你改的是哪一个,不放心的可以两个都改。
- 然后找到#requirepass foobared,改成requirepass 密码
- 。
- 接着按住shift后右键进入该目录下的命令行,执行redis-server.exe 你改的配置的文件名
- 。
- 这样启动会有个问题,一旦你把命令行窗口关闭 redis也会被关闭,所以我们需要把它注册成服务
命令是:redis-server.exe --service-install redis.windows.conf
成功后就能在服务管理中找到
- 如果安装后默认已经添加了这个服务项,那就不能再次添加,你可以右键查看属性
可以看到使用的是哪个配置文件,然后按照需要修改就可以了。
最后提醒一下,修改过配置,记得一定要重启redis!
https://www.cnblogs.com/GuoJunwen/p/9238624.html
php使用redis
Redis删除指定前缀的key
$key = Redis::keys('key*'); Redis::del($key);