专栏首页阿dai_linuxRedis简单操作 原

Redis简单操作 原

21.16 Redis操作--键值

查看数据库内所有key:
127.0.0.1:6379> keys *
 1) "hseta"
 2) "k3"
 3) "setb"
 4) "hash1"
 5) "zseta"
 6) "mykey"
 7) "set3"
 8) "key2"
 9) "set2"
10) "set4"
11) "key1"
12) "list2"
13) "k1"
14) "seta"
15) "list1"
16) "k2"
17) "set1"
18) "set5"

支持模糊匹配:
127.0.0.1:6379> keys set*
1) "setb"
2) "set3"
3) "set2"
4) "set4"
5) "seta"
6) "set1"
7) "set5"

查看某key是否存在:
127.0.0.1:6379> exists key1
(integer) 1
127.0.0.1:6379> exists key11
(integer) 0
#0:表示不存在;1:表示存在

删除key:
127.0.0.1:6379> del key1 
(integer) 1
127.0.0.1:6379> exists key1
(integer) 0

给已存在的key设置过期时间:
127.0.0.1:6379> EXPIRE key2 600

查看某key还有多长时间过期:
127.0.0.1:6379> ttl key2
(integer) 578
#当key已经不存在时,返回-2
#当key存在但是没有设置失效时间时,返回-1

选择数据库:
127.0.0.1:6379> select 0
OK
#Redis有16个库,0表示当前所在的库

将一个 key移动到另一个库:
127.0.0.1:6379> move set2 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "set2"

取消某个key的过期时间(persist):
127.0.0.1:6379> ttl key2
(integer) 221
127.0.0.1:6379> persist key2
(integer) 1
127.0.0.1:6379> ttl key2
(integer) -1

随机返回一个key:
127.0.0.1:6379> randomkey
"zseta"
127.0.0.1:6379> randomkey
"mykey"

重命名:
127.0.0.1:6379> rename set2 set22
OK
127.0.0.1:6379> smembers set2
(empty list or set)
127.0.0.1:6379> smembers set22
1) "d"
2) "b"
3) "eee"

查看key的类型:
127.0.0.1:6379> type key2
string
127.0.0.1:6379> type set22
set
127.0.0.1:6379> type zseta
zset
127.0.0.1:6379> type list2
list
127.0.0.1:6379> type hseta
hash

查看数据库找那个key的数目:
127.0.0.1:6379> DBSIZE
(integer) 17

查看数据库的状态信息:
127.0.0.1:6379> info

清空当前数据库内所有key:
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "set22"
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> keys *
(empty list or set)

清空所有数据库内所有的key:
127.0.0.1:6379> flushall

保存数据到rdb文件中,在后台运行:
127.0.0.1:6379> bgsav
同上,在前台运行:
127.0.0.1:6379> save

获取所有配置参数:
127.0.0.1:6379> config get *

查看指定参数:
127.0.0.1:6379> config get port
1) "port"
2) "6379"

设置某参数:
27.0.0.1:6379> config set timeout 100

数据恢复

首先定义或确定dir目录和dbfilename,然后把备份的rdb文件放到dir目录下面,重启Redis即可恢复数据。

21.17 Redis安全设置

设置IP和端口:

设置监听的IP:
bind 127.0.0.1 2.2.2.2 
#监听指定IP可提高安全性,多个IP用空格分开

设置端口:
port 7000
#不使用Redis默认端口(6379)

设置密码:

[root@adailinux ~]# vim /etc/redis.conf
requirepass 123456

重启Redis:
[root@adailinux ~]# killall redis-server
[root@adailinux ~]# redis-server /etc/redis.conf 

登录:
[root@adailinux ~]# redis-cli -a '123456'

更改config的名字或禁掉config命令:

[root@adailinux ~]# vim /etc/redis.conf
rename-command CONFIG adai
#将“config”命令改为“adai”

rename-command CONFIG ""
即,把config的名字改为空

21.18 Redis慢查询日志

针对慢查询日志可以设置两个参数,一个是执行时长,单位是微妙,另一个是慢查询日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列被移除。

[root@adailinux ~]# vim /etc/redis.conf
slowlog-log-slower-than 10000  
#单位:微秒
slowlog-max-len 128

列出所有慢查询日志:
127.0.0.1:6379> slowlog get
(empty list or set)

列出两条慢查询日志:
127.0.0.1:6379> slowlog get 2
(empty list or set)

查看慢查询日志条数:
127.0.0.1:6379> slowlog len
(integer) 0

21.19 Redis存储PHP的session

PHP和Redis通过模块相结合,使用前先查看PHP是否有Redis模块,如果没有,按如下方式安装并配置。

安装phpredis扩展模块

[root@adailinux src]# wget https://coding.net/u/aminglinux/p/yuanke_centos7/git/raw/master/21NOSQL/phpredis.zip

[root@adailinux src]# unzip  phpredis.zip

[root@adailinux src]# cd phpredis-develop/

[root@adailinux phpredis-develop]# /usr/local/php-fpm/bin/phpize

[root@adailinux phpredis-develop]# ./configure --with-php-config=/usr/local/php-fpm/bin/php-config

[root@adailinux phpredis-develop]# make && make install

增加如下配置:
[root@adailinux phpredis-develop]# vim /usr/local/php-fpm/etc/php.ini
extension=redis.so

[root@adailinux phpredis-develop]# /usr/local/php-fpm/sbin/php-fpm -m
redis

Redis和PHP连接

方法1:编辑php.ini
[root@adailinux www]# vim /usr/local/php-fpm/etc/php.ini
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

方法2:编辑pool文件:
[root@adailinux ~]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
php_value[session.save_handler] = redis
php_value[session.save_path] = "tcp://127.0.0.1:6379"

测试

[root@adailinux www]# pwd
/data/wwwroot/www
[root@adailinux www]# ls
1.php  index.php
#1.php为测试文件
[root@adailinux www]# cat 1.php 
<?php 
session_start(); 
if (!isset($_SESSION['TEST'])) { 
$_SESSION['TEST'] = time(); 
} 
$_SESSION['TEST3'] = time(); 
print $_SESSION['TEST']; 
print "<br><br>"; 
print $_SESSION['TEST3']; 
print "<br><br>"; 
print session_id(); 
?> 

[root@adailinux www]# curl localhost/1.php
1506936047<br><br>1506936047<br><br>km1ii0ik1e9gm7ila821p5rm21 


[root@adailinux www]# redis-cli
127.0.0.1:6379> keys *
 6) "PHPREDIS_SESSION:0u8brm02qfatp8f4tebhjbmhb3"
 8) "PHPREDIS_SESSION:km1ii0ik1e9gm7ila821p5rm21"
 19) "PHPREDIS_SESSION:cop4l1app7fn0lpo1h0neeuna3"

即,配置完成!!!

注: 如果是在集群架构中,需要使用predis扩展模块,扩展地址 https://github.com/nrk/predis

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hgame_week3_web

    Payload : 1andif((1=2),exp(999999999),1)#

    安恒网络空间安全讲武堂
  • PHP与500错误

    PHP开发过程中经常会遇到返回500错误的情况,而且body体中也没有任何调试(可用)内容。这个时候你就需要慢慢调试了(打断点,开调试模式等),但如果是现网,这...

    yaxin
  • 正确设置php-fpm子进程用户,提高网站安全性防挂马

    原文地址:http://www.myhack58.com/Article/60/61/2013/37209.htm

    拓荒者
  • Centos 7 安装Zabbix 3.4 原

    https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements

    拓荒者
  • 理解NGINX的重写break和last,以及location匹配规

            location / {             index  index.html index.htm index.php l.php; ...

    拓荒者
  • CVE-2019-6707 CVE-2019-6708分析

    如果提交的pproductid是一个数组的话会直接进入db->peupdate操作中。没有任何过滤防护措施。

    安恒网络空间安全讲武堂
  • Nginx 防御CC攻击的两种方法 原

    CC攻击可以归为DDoS攻击的一种。他们之间都原理都是一样的,即发送大量的请求数据来导致服务器拒绝服务,是一种连接攻击。CC攻击又可分为代理CC攻击,和肉鸡CC...

    拓荒者
  • 滥用ThinkPHP漏洞的僵尸网络Hakai和Yowai

    网络犯罪分子正在利用一个在2018年12月被发现和已修补的ThinkPHP漏洞传播Yowai(Mirai变种)和Hakai(Gafgyt变种)两种僵尸网络病毒。

    FB客服
  • 实战Nginx与PHP(FastCGI)的安装、配置与优化

    一、什么是 FastCGI FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持Fas...

    迅达集团
  • PHP | 数组 知识梳理 与 运用实例

    初始化一个索引数组, 使用print_r($fruit);语句 输出 数组键及对应的值:

    凌川江雪

扫码关注云+社区

领取腾讯云代金券