Redis 2018-07-28
Python-100-Days --> Day66-75-->03.存储数据
- Redis(非关系型数据库) http://redis.io
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
1. 安装Redis
[root@iZwz97tbgo9lkabnat2lo8Z ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz
[root@iZwz97tbgo9lkabnat2lo8Z ~]# gunzip redis-3.2.12.tar.gz
[root@iZwz97tbgo9lkabnat2lo8Z ~]# tar -xvf redis-3.2.12.tar
[root@iZwz97tbgo9lkabnat2lo8Z ~]# cd redis-3.2.12
[root@iZwz97tbgo9lkabnat2lo8Z ~]# make && make install
[root@iZwz97tbgo9lkabnat2lo8Z ~]# redis-server --version
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=5bc5cd3c03d6ceb6
[root@iZwz97tbgo9lkabnat2lo8Z ~]# redis-cli --version
redis-cli 3.2.12
2. Linux里启动 & 连接 & 操作 Redish
2.1
-
确认redis-sever没有启动 :
ps 或者 jobs -
复制配置文件到主目录下 : (原配置文件不要改)
cp redis-4.0.10/redis.conf ./ -
进入配置文件:
vim redis.conf -
修改配置
69行 - bind 内网地址
92行 - 端口号: 6379 "Merz (九宫格)"-->作者喜欢这个人;
tcp-backlog 511;(一次性传输数据大小限制)
500行 - 去掉注释,设置密码(123456)-->requirepass 123456
186行 - 默认有16个数据库,可不改-->database 16
220行 - 持久化方案RDB : 900s的时间里自动保存一次,300s的时间里有10个key-values变化,保存一次,60s里有10000个key-values变化保存一次:
save 900 1
save 300 10
save 60 10000
672行 - 第二套保存方案AOF : 将no-->yes,每一秒保存命令(702行:appendfsync everysec )
appendonly yes
-
启动并放到后台运行:
redis-server redis.conf &
-
查看是否启动,显示listen:
netstat -nap | grep redis
-
连接数据库:
redis-cli -h 172.18.148.101 -p 6379 -a <password>
用户名172.18.148.101:6379>
-->表示进入数据库,可以操作 -
口令里没有输入密码,则输入密码
auth password
-
输入ping,回复pong表示连接有效
2.3 Redis 命令 (Python程序操作时,命令即方法): redisdoc.com
- 存值 :num --> 超时时间,过了时间值消失显示nil(空)
set <key> <valuse> [ex num] - 取值
get <key> - 删值
del <key> - 查看键是否存在
exists <key> - ttl - time to live 存活时间 :
ttl <key> - 从新设定过期时间 (expire - 终止)
expire <key> - 强行保存到RDB :
save - 后台保存数据 :
bgsave - 查看所有的键
key *
- 清空所有的数据
flushdb
- 取到某个数据库(数据库隔离数据,相互之间不影响)
select NO. - 清空所有数据库的数据
flushall
a. string
- mget
- mset
b. hash : 一般存对象
c. list : 可以作为栈 / 队列 使用
- lpush - 值是放到左边
- rpush - 值放右边
d. set :
#作业 : String hash list set dict 五种数据类型里存的数据
Pycharm 上使用Redis
- 安装redis :
pip install redis
- 导入模块 :
import redis
re = redis.Redis(host=公网IP, port=端口号,
db=0, password=
)
总结:
- 确认Redis 有密码