三、redis密码登入和设置及string操作(python)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luhu124541/article/details/88537124

一、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从内存中进存取数据时进行缓存。

猜你喜欢

转载自blog.csdn.net/luhu124541/article/details/88537124