该数据库类似与内存 读取快,是非关系型数据库
redis五大类型 string hash list set zset
安装redis后如果是linux系统
1.
启动redis-server &
连接redis-cli
2.修改密码
vim myredis.conf 找到requirepass 后面数字修改了
3 访问指定ip
redis-cli -h (ip) -p(端口)
进入后输入密码auth +密码
进入后输入keys *可以查看有哪些键值段数据
string 字符串
创建多个—— mset o 2 q 3 表示创建多个
创建—— set p 1 设置p的值为1
获取—— get p 获取p的值
改变值递增—— incr p 整数依次递增并且修改值 默认值是0
递减 decr 递减
增加字符—— append p 1 在p的值后加数字
字符串切片 getrange p 取值区间
hash
创建—— hset key键值 字段(属性) 值
获取全部—— hgetall key键值 //某一个——hget key 字段
获取key的属性—— hkeys key键值
获取key的值—— hvals key键值
删除—— hdel key键值 属性【属性】可以写多个
list列表
创建—— rpush key 值 lpush/rpush 表示左插入和右插入
查看—— lrange
删除—— lopo/rpop key 左右删除
set 集合
创建添加—— sadd key 值
查看—— smembers key 看的内容/scard 查看个数
删除—— spop key 表示随机删除
zset有序集合
创建添加—— zadd key 值 成员
查看—— zrang key 0-1 自动从小到大列出来/zrevrang 从大到小
python连接
import redis
redis.Redis(host=’47.106.134.xxx’(ip地址), port=6379, password=’xxx’)
实例 通过填写的数据 链接redis和mysql 如果redis中正确返回数据正确 如果错误 找mysql数据如果能匹配 则将该数据更新到redis返回’刷新’
import sys
import redis
import pymysql
#第一步链接ridis 如果账户正确返回数据正确 如果错误 找mysql如果能匹配更新redis返回刷新
#反之则没有该用户
def main(sql):
db = pymysql.connect(
host='localhost',
user='root',
password='147258',
db='srs',
charset='utf8'
)
a = db.cursor()
a.execute(sql)
data = a.fetchall()
db.close()
return data
## 链接
def con_redis(name, passwd):
r = redis.Redis(host='47.106.134.131', port=6379, password='123')
## 获取姓名密码参数
r_name = r.hget('user','name')
r_passwd = r.hget('user','passwd')
# print(type(r_name))
r_name = r_name.decode('utf8') # 由于从服务器获取的是bytes 而我们输入的是str格式要匹配就要转换
r_passwd = r_passwd.decode('utf8')
# print(type(r_name))
# print(r_name)
if name ==r_name and passwd == r_passwd:
return True
else:
return False
## 访问redis判断输入的姓名密码是否匹配
##不匹配则查询mysql,select操作
# 有查询结果的话则更新到redis中反之则没有
if __name__ == '__main__':
name = sys.argv[1]
passwd = sys.argv[2]
result = con_redis(name, passwd)
if not result[0]:
# 查询mysql数据库
sql = """select * from test where user='%s' and
passwd='%s'""" % (name,passwd)
data = main(sql)
if data:
r = redis.Redis(host='47.106.134.131', port=6379, password='123')
r.hset('user','name',name)
r.hset('user','passwd',passwd)
print('刷新')
else:
print('错误')
else:
print('redis数据正确')