redis-cli -h localhost -p 6379
auth 数据库密码
redis默认有16个 数据库(0-15)
命令提示符实现:
数据操作
一 Redis通用命令:
1. 切换数据库 / 数据库的索引
select 0~15
2.查看所有的key
keys *
3.查看key的数据类型
type key的名字
4.key是否存在
exists key的名字
5.从命名key
rename key的旧名字 key的新名字
6.删除key
del key的名字
7.清空数据库
flushdb / flushall
二 String类型:
1.设置key-value
set 一个值
>>set game cf
mset 多个值
>>mset position fashi hero daji attack 200
append 追加
key 不能过长或过短 值 为字符串(英文字母或数字)或者数值
2.查看所有的key
>> keys *
1) "attack"
2) "hero"
3) "position"
4) "game"
3.获取key的值 / get key的名字
>> get hero
>>"daji"
4.设置key时,设置过期时间
>>set attack 200 ex 2
5.获取字符串值的长度
>>strlen hero
6.获取字符串的分片
>> getrange position 0 2
>>"fas"
7.设置字符串的片段值/修改值
>> setrange hero 0 xiaoqiao
>>(integer) 8
8.数值加1、减1
localhost:6379> incr attack
(integer) 501 #默认+1
localhost:6379> incrby attack 500
(integer) 1001
localhost:6379> decr attack
(integer) 999 #默认-1
localhost:6379> decrby attack 500
(integer) 501
Python实现
import redis r = redis.Redis(host='127.0.0.1',port=6379,db=0,password='密码') #字符串操作 r.set('position','zhanshi') #获取 从redis 中获取的是bytes类型,要转化为字符串 name = r.get('position') new_name = name.decode() print(name) print(type(name)) print(new_name) print(type(new_name)) # # #列表的操作 # # lpush 从左边插入 # name_list = ['houyi','luban'] # #值插入的类型是列表,但要使用解包的方式插入, * # # lpush 是从左边插入 # rds.lpush('sheshou',*name_list) # # # # rpush 是从右边插入 # rds.rpush('sheshou',*name_list) # # #修改某个下标的值 # rds.lset('sheshou',1,'huangzhong') # # #删除 # name = rds.lpop('sheshou') #从左边删除 # name = rds.rpop('sheshou') #从右边删除 # # # 删除指定值的个数 # name = rds.lrem('sheshou',3,'houyi') # print(name) # # 截取数据,会把范围外的数据从列表中删除 # name = rds.ltrim('sheshou',0,1) # print(name) # # #获取 # names = rds.lrange('sheshou',0,-1) # print(names,type(names)) # #hash 操作 #hset(name,key,value)设置一个 # rds.hset('king_hony','role','cike') # 设置多个 # rds.hset('king_hony',{'cike':'libai','fashi':'xiaoqiao','sheshou':'makeboluo'}) # 查询一个 # v = rds.hget('king_hony','role') # 查询多个 # v = rds.hgetall('king_hony') #删除hash # keys = ['cike'] #删除没有返回值 # rds.hdel('king_hony',*keys) # v = rds.hgetall('king_hony') # print(v)
#集合的操作 #添加集合 names = ['zhangsan','lisi','wangwu'] #添加多个 rds.sadd('jiyun',*names) #添加一个 一定要解包 rds.sadd('jiyun','maliu') #删除 rds.srem('jiyun','zhangsan') #获取数量 num = rds.scard('jiyun') print(num) #判断成员是否存在 rest = rds.sismember('jiyun','zhangsan') print(rest) #查询 v = rds.smembers('jiyun') print(v) #有序集合的操作 #添加 rds.zadd('wangzhe',{'atk':200,'flod':500}) #更新 rds.zincrby('wangzhe',-50,'atk') #查询,返回的是列表,元素是key,withscores=True,会显示分数 v = rds.zrange('wangzhe',0,-1,withscores=True) #查询key的个数,用来统计长度 v = rds.zcard('wangzhe') #统计范围内的数据,返回的是成员个数 v=rds.zcount('wangzhe','200','500') #返回指定成员的排名 v=rds.zrank('wangzhe','atk') #降序排列 v=rds.zrevrank('wangzhe','atk') v=rds.zrevrange('wangzhe',0,-1,withscores=True) print(v) #删除 # zrem 删除指定的 # rds.zrem('wangzhe','cike') # 删除范围外的数据 # rds.zremrangebyrank('wangzhe',1,2) # v = rds.zrange('wangzhe',0,-1,withscores=True) # print(v)