前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis简单操作 原

Redis简单操作 原

作者头像
阿dai学长
发布2019-04-03 10:32:20
4030
发布2019-04-03 10:32:20
举报
文章被收录于专栏:阿dai_linux阿dai_linux

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({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/10/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 21.16 Redis操作--键值
    • 数据恢复
    • 21.17 Redis安全设置
      • 设置IP和端口:
        • 设置密码:
          • 更改config的名字或禁掉config命令:
          • 21.18 Redis慢查询日志
          • 21.19 Redis存储PHP的session
            • 安装phpredis扩展模块
              • Redis和PHP连接
                • 测试
                相关产品与服务
                云数据库 Redis
                腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档