redis簡介及應用

2021-08-19 01:57:42 字數 3802 閱讀 2607

一. 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。它...