一. mysql事务
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
二. 安装redis数据库
yum install redis
三 redis相关的命令
redis-server #启动redis数据库服务器
redis-server & #启动redis数据库服务器并且让它在后台运行
redis-cli #进入redis客户端
redis-cli -h 127.18.40.58 -p 6379 -a "123456" 连接到其他redis服务器
四. redis五大数据类型
set key value #设置key的值
get key #获取key的值
mset key1 value1 key2 value2 ... #设置多个key的值
mget key1 key2... #获取多个key的值
getrange key start end #返回key中字符串值的子串(切片)
incr key #将key中的数值加一
decr key #将key中的数值减一
append key value #将指定的值追加到key的字符值的后面
hset key field value #将哈希表 key 中的字段 field 的值设为 value
hget key field #获取哈希表key中的字段field的值
hgetall key #获取哈希表key的所有字段和值
hkeys key #获取哈希表中所有的key
hvals key # 获取哈希表中所有的filed
hdel key field #删除哈希表key中的field的值
lpush key value1 value2... #在列表key头部插入数据
rpush key value1 value2... #在列表key末尾插入数据
lrange key start end #获取列表key指定范围的元素
rpop key #删除列表key最后一个元素
llen key #获取列表key的长度
sadd key member1 member2 member3.... #向集合key添加一个或多个成员
scart key #获取集合key的成员数
spop key #移除并返回集合key中的一个随机数
smembers key #获取列表key的所有的成员
zadd key score1 value1 score2 value2 ... #向有序集合添加一个或多个成员
zadd myzset 1 "one" 2 "two" 3 "three" #例子
zcard key #获取有序集合的成员数
五.redis练习题(redis实现登录)
'''
登录redis+mysql
1.pip install redis
2.连接mysql
3.连接redis
import redis
redis.Redis()
4.获取姓名密码参数
python xxx.py argv1 argv2
import sys
sys.argv[1]
5.访问redis,判断输入的姓名和密码和redis中保存的用户名和密码是否相匹配
6.不匹配则查询mysql, select操作
7.如果mysql里面有查询结果,则更新到redis中,反之则返回没该用户
'''
import sys
import pymysql # 导入mysql接口模块
import redis # 导入redis接口模块
def con_mysql(sql): # 连接mysql数据函数
db = pymysql.Connect(host='localhost',
user='root',
passwd='123456',
db='company',
port=3306,
charset='utf8'
)
cursor = db.cursor()
cursor.execute(sql)
data = cursor.fetchall()
db.close()
return data
def con_redis(name,passwd): #连接redis数据库函数
r = redis.Redis(host='39.108.188.19',port=6379)
r_name = r.hget('user','name') #获取redis数据库中用户名
r_passwd = r.hget('user','passwd') # 获取redis数据库中的密码
r_name = r_name.decode('utf8') # 转换字符
r_passwd = r_passwd。decode('utf8') # 转换字符
# 判断用户输入的用户名和密码是不是和redis数据库的相等
if name == r_name and passwd == r_passwd:
return Ture,'登陆成功'
else:
return False,'登录失败'
if __name__ = '__main__':
name = sys.argv[1] #拿到用户输入的用户名
passwd = sys.argv[2] # 拿到用户输入的密码
resoult = con_redis(name,passwd)
if not result[0]:
sql = ''' select * from tb_user where user="%s" and passwd="%s" ''' %(name,passwd)
data = con_mysql(sql)
if data:
r = redis.Redis(host='39.108.188.19',port=6379)
r.hset = ('user','name',name) # 更新redis数据库
r.hset = ('user','passwd',passwd)#更新redis数据库
print('刷新redis.登录成功')
else:
print('用户名或者密码错误')
else:
print('redis中的数据正确',登录成功)