一. mysql事務
原子性: 乙個事務是不可分割的整體,執行操作時就是一起做,或者一起都不做
一致性:意思是張三給李四轉了100元,李四就必須加100元
隔離性 意思是寫資料是隔離開
永續性 意思是資料庫的改變不能返回,改了就改了
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
keyvalue #設定key的值
getkey #獲取key的值
mset key1 value1 key2 value2 ... #設定多個key的值
mget key1 key2... #獲取多個key的值
getrange key
start
end #返回key中字串值的子串(切片)
incr key #將key中的數值加一
decr key #將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 ***.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介面模組
defcon_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
defcon_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)
ifnot 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中的資料正確',登入成功)
Redis安裝及簡介
redis是完全開源免費的,遵守bsd協議,是乙個高效能的key value資料庫。屬於前一講中的nosql資料庫一族。1.redis可以用來做儲存 storge 而memccached是用來做快取 cache 這個特點主要因為其有 持久化 的功能.2.儲存的資料有 結構 對於memcached來說...
Redis安裝及簡介
使用xshell將 redis.5.0.5.tar.gz 包上傳至 usr local 執行 tar zxvf redis.5.0.5.tar.gz完成解壓 重新命名 mv redis.5.0.5 redis redis是由c寫的,編譯前需要先安裝gcc yum install gcc c 見圖,n...
Redis 基礎 Redis 簡介及安裝
remote dictionary server redis 是乙個由salvatore sanfilippo寫的key value儲存系統。redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。它...