redis知识点总结

Redis非关系型数据库:

  1. 启动

    • 安装redis:
      – linux系统安装redis apt install redis-server apt install redis-tools
      – 在云服务器里面开启安全组,注释掉绑定地址即可以全网访问
    • redis-server & / systemctl start redis
  2. 配置认证密码

    • vim /etc/redis/redis.conf

      这里写图片描述
  3. 连接redis服务器

    • redis-cli -h 172.16.252.141 -p 端口号 :远程连接
    • redis-cli : 本地连接
  4. 查看帮助

    • redis-server –help
    • redis-server myredis.conf :以此执行文件运行redis
  5. redis使用:

    • hash: –>相当于字典
      – hset, hget
      – hkeys
      – hvals
      – hgetall
      – hdel
      – hmset user name age 18 addr chengdu : 批量插入

    • string:
      – set, get, del
      – incr, decr
      – incrby, decrby
      – incrbyfloat
      – getrange
      – append

    • list:双向链表
      – lpush, rpush
      – lrange
      – lpop, rpop
      – llen

    • set: 集合
      – sadd
      – spop
      – 以上方法是随机弹出

    • zset: 有序集合
      – zadd
      – zscore, key, member
      – zrange
      – zrevrange

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  1. 登录redis + mysql
    • pip install redis
    • 连接mysql
    • 连接redis
      – import redis
      – redis.Redis()
    • 获取姓名和密码参数
      – python xxx.py argv1 argv2
      – import sys
      – sys.argv[1]
    • 访问redis, 判断输入的姓名和密码和redis中保存的用户名和密码是否匹配
    • 和redis不匹配, 则查询mysql中数据
    • mysql查询结果存在的话, 则更新到redis中, 反之没有该用户

代码如下:

-- coding:utf-8 --

”’python

“`python
import sys
import pymysql, redis

def main1(sql):
db = pymysql.connect(
host=’47.95.231.161’,
user=’root’,
passwd=’nj2905058’,
port=3306,
db=’srs’,
charset=’utf8’
)
cursor = db.cursor()

cursor.execute(sql)

db.commit()

data = cursor.fetchall()
db.close()
return data

def main2(name, passwd):
r = redis.Redis(
‘47.95.231.161’,
6379,
0,
‘nj2905058’
)
r_name = r.hget(‘user’, ‘name’)
r_passwd = r.hget(‘user’, ‘passwd’)
r_addr = r.hget(‘user’, ‘addr’)

得到的数据都是以二进制方式存的,必须进行解码

以后熟练以后可以 r_addr = r.hget(‘user’, ‘addr’).decode(‘utf8’)

if r_name:
r_name = r_name.decode(‘utf8’)
r_passwd = r_passwd.decode(‘utf8’)
r_addr = r_addr.decode(‘utf8’)
if name == r_name and passwd == r_passwd:
return True, ‘登录成功’
else:
return False, ‘登录失败’

if name == ‘main‘:

获取传入的姓名和密码参数

name = sys.argv[1]
passwd = sys.argv[2]

传入redis中,进行校验

result = main2(name, passwd)
print(result[0])

如果结果为真,则在redis里面匹配成功,不进入mysql进行验证

如果为假, 则进入mysql数据库进行验证

if not result[0]:
# 查询mysql数据库
sql = ”’select * from stu where name=”%s”
and passwd=”%s””’ % (name, passwd)
data = main1(sql)
# 如果data为空,则在mysql里面没有匹配到账号密码
# 直接进入else,返回错误.
# 如果data不为空则刷新redis里面的数据
if data:
r = redis.Redis(‘47.95.231.161’, 6379, 0,
‘nj2905058’)
r.hset(‘user’, ‘name’, name)
r.hset(‘user’, ‘passwd’, passwd)
print(‘刷新redis, 登录成功’)
else:
print(‘用户名和密码错误’)
else:
print(‘redis中数据正确,登录成功’)
”’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值