三、redis密碼登入和設置及string操作(python)

一、redis報錯:NOAUTH Authentication required?

redis.exceptions.ResponseError: NOAUTH Authentication required.

#原因:redis設置了密碼,創建連接時需要密碼進行身份認證
pool = redis.ConnectionPool(host="localhost", port=6379, password=<你的密碼>)

二、redis-cli密碼登入和設置

#redis-cli -h 127.0.0.1 -p 6379 -a <密碼>
1、cmd直接登入:redis-cli -a <你的密碼> #redis-cli -p 6379 -a <密碼>
2、登入後設置密碼:config set requirepass <密碼>
3、獲取密碼:config get requirepass
4、先登入後驗證密碼:
redis-cli
auth <密碼>
5、清空當前數據庫中的所有 key:flushdb
6、清空整個 Redis 服務器的數據(刪除所有數據庫的所有 key ):flushall

redis下,數據庫是由一個整數索引標識,而不是由一個數據庫名稱。默認情況下,一個客戶端連接
到數據庫0。redis配置文件中下面的參數來控制數據庫總數:
/etc/redis/redis.conf
文件中,有個配置項 databases = 16 //默認有16個數據庫

7、切換數據庫:select #0爲第一個數據庫
8、查看當前數據庫下所有的keys: keys *

三、redis的string操作

1、set(name, value, ex=None, px=None, nx=False, xx=False)

在Redis中設置值,默認,不存在則創建,存在則修改
參數:
     ex,過期時間(秒)
     px,過期時間(毫秒)
     nx,如果設置爲True,則只有name不存在時,當前set操作才執行
     xx,如果設置爲True,則只有name存在時,崗前set操作才執行

2、setnx(name, value)

設置值,只有name不存在時,執行設置操作(添加)
 
如果是r.setnx('name', 'Tom') 則name的值還是'bigberg'
 
r.setnx('age', 22)
print(r.get('age'))

3、 setex(name, value, time)

# 設置值
# 參數:
    # time,過期時間(數字秒 或 timedelta對象)

4、psetex(name, time_ms, value)

# 設置值
# 參數:
    # time_ms,過期時間(數字毫秒 或 timedelta對象)

5、mset(*args, **kwargs)

批量設置值
如:
    mset({'k1': 'v1', 'k2': 'v2'})
 
 
r.mset({'a': 1, 'b': 2})
print(r.get('a'))
print(r.get('b'))

6、 get(name)

獲取值

7、mget(keys, *args)

批量獲取
如:
    mget('ylr', 'wupeiqi')
    或
    r.mget(['ylr', 'wupeiqi'])
 
 
r.mset({'a': 1, 'b': 2})
print(r.mget('a', 'b'))

8、getset(name, value)

設置新值並獲取原來的值
 
# 會將原先的值先返回
print(r.getset('name', 'Tom'))
print(r.get('name'))

9、getrange(key, start, end)

如果是中文字符,在utf-8編碼下,一箇中文字符佔3個字節
 
r.set('address', '杭州')
res = r.getrange('address', 0, 2)
print(res.decode())

10、setrange(name, offset, value)

# 修改字符串內容,從指定字符串索引開始向後替換(新值太長時,則向後添加)
# 參數:
    # offset,字符串的索引,字節(一個漢字三個字節)
    # value,要設置的值
 
r.setrange('address', 0, '蘇')
print(r.get('address').decode())
 
# 輸出
蘇州
 
 
r.setrange('name', 2, 'ol')
print(r.get('name').decode())
 
# 輸出
Tool   
 
# Tom 變成了 Tool

四、cache

cache:高速緩存存儲器,用於CPU從內存中進存取數據時進行緩存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章