day39 Redis数据库

2018-12-27  本文已影响0人  barriers

win+r输入框中输入:services.msc跳到服务位置

非关系型数据库

KV存储系统 - REmote DIctionary Server(Redis)
提供高速缓存服务 - 缓存热点数据(访问量大数据量不大)
缓解了数据库的压力(高频访问数据不用直接访问数据库)

登陆redis

  1. redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 > redis.log 2> redis-error.log & 设置redis数据库的密码为1qaz2wsx,端口为6379
    &:不显示输出信息,直接跳到输入密码界面
  2. redis-cli
    3.auth 1qaz2wsx(输入密码)

1.python中pymysql常遇到的问题

Can't connect to MySQL server - 主机ip设置、端口设置错误或服务器没有开启
Unknown database 'hrss' - 数据库名字设置错误
'NoneType' object has no attribute 'encoding' - 编码设置错误
Access denied for user - 用户名或密码错误
init() got an unexpected keyword argument - 初始化参数名错误
%d format: a number is required, not str - 端口写成了字符串

2翻页

import pymysql
from pymysql.cursors import DictCursor
con = pymysql.connect(host='localhost', port=3306,
                  database='hrs', charset='utf8',
                  user='root', password='123456', autocommit=True)
class Emp():
    def __init__(self,no,name,job,sal):
        self.no=no
        self.name=name
        self.job=job
        self.sal=sal
    def __str__(self):
        return f'{self.no}-{self.name}-{self.job}-{self.sal}'
def main():
    page=int(input('页码:'))
    size=int(input('页面大小:'))
    try:
       with con.cursor(DictCursor) as cursor:
        -------显示从第几页看起,一页显示多少行---------------
            cursor.execute('select * from 
              tb_emp limit (%s,%s)',((page-1)*size,size)) 
            for result in cursor.fetchall():
                emp=Emp(*result)
                print(emp)
    finally:
        con.close()

def foo(a,*,b):
*前面的参数叫做位置参数,传参时对号入座即可
*后面的参数叫做命名关键字参数,传参时必须用“参数名=参数值”的形式传参
*变成args或者*kwargs,b仍然是命名关键字参数

def foo(a,*,b):
    return a+b
print(foo(1,b=2))
print(foo(a=1,b=2))


----------用字符串长度排序------------
items=['hello','watermelon','waxberry','zoo','apple']
print(sorted(items))
print(sorted(items,key=lambda x:len(x),reverse=True))

3redis常用命令

jobs查看后台任务
bg%1让任务在后台运行
fg%1 让任务回到前台运行
redis-server & 让redis在后台运行
ctl+z 把任务放到后台,但不一定让他运行
ctl +c 关闭前台进程
ps -ef | grep redis-server 查看redis-server的进程
kill 23420 - 杀id为23420的进程(redis)
netstat -nap | grep 6379 查看端口状态
du 查看磁盘占比情况
redis-server > redis.log 2>redis-error.log& 开启进程不要输出,直接跳入输入界面
redis-cli -h 120.77.222.217 -p 6379 用客户端连接redis

4非关系型数据库redis

redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 - 设置redis数据库的密码为1qaz2wsx,端口为6379
KV存储系统 - REmote DIctionary Server(Redis)
提供高速缓存服务 - 缓存热点数据(访问量大数据量不大)
缓解了数据库的压力(高频访问数据不用直接访问数据库)
Redis提供了两种持久化数据的方案
1.RDB - 默认开启
2.AOF - 默认关闭 --appendonly yes (考虑数据不丢失就开启;考虑性能就不开启,设置为no)
redis-server & 让redis在后台运行
ctl+z 把任务放到后台,但不一定让他运行
history -c清除历史记录
redis-cli -h 120.77.222.217 -p 6379 - 用客户端连接redis
auth - 验证身份
ping - 查看是否成功连接
set - 设置键值对
get - 取值
expire - 设置超时时间
del - 删除键
keys -查看键
exists - 查看键是否存在
flushdb - 清空数据库中的键值对
flushall - 清除所有数据库中的所有键值对
select 1 切换到第二个编号为1的数据库
save/bgsave 保存数据/后台保存数据
shutdown -关闭服务器
quit - 退出
dbsize - 查看当前数据库有多少键值对

set username jack设置username为jack
get username 查询username
expire jack 30 在后面设置jack的存在时间为30秒
del jack 删除jack键值对
set email jack@189.com ex 20 设置存储时间为20s
ttl email 查询email还能存在的时间
keys * 查看所有的键值对(*为统配符)
keys y* 查看带y的所有键值对
flushdb 清空数据库
exists 键 查看键值对是否存在(1代表存在,0代表不存在)

登陆redis:

  1. redis-server --requirepass 1qaz2wsx --appendonly yes --port 6379 > redis.log 2> redis-error.log & 设置redis数据库的密码为1qaz2wsx,端口为6379
    &:不显示输出信息,直接跳到输入密码界面
  2. redis-cli
    3.auth 1qaz2wsx(输入密码)
上一篇下一篇

猜你喜欢

热点阅读