redis操作 + python连接redis(StrictRedis)
Redis
方法命令总结
keys | string | hash | list | set | zset |
---|---|---|---|---|---|
exists | set | hset | lpush | sadd | zadd |
type | setex | hmset | rpush | smembers | zrange |
delete | mset | hkeys | linsert | srem | zangebyscore |
expire | append | hvals | lrange | zscore | |
getrange | get | hget | lset | zrem | |
ttl | mget | hmget | lrem | zremrangebyscore | |
key | hdel |
string类型
- 字符串类型是 Redis 中最为基础的数据存储类型。
- 它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据。
- 如JPEG图像数据或Json对象描述信息等。
- 在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
set:
#设置键值: set key value #设置键为name值为xiaoming的数据 set name xiaoming
setex:
#设置键值及过期时间,以秒为单位 setex key seconds value #设置键为aa值为aa过期时间为3秒的数据 setex aa 3 aa
mset:
#设置多个键值 mset key1 value1 key2 value2 ... #设置键为a1值为python、键为a2值为java、键为a3值为c mset a1 python a2 java a3 c++
append:
#追加值 append key value #向键为a1中追加值abc append a1 abc
get:
#获取:根据键获取值,如果不存在此键则返回nil get key #获取键name的值 get name
mget:
#获取多个键获取多个值 mget key1 key2 ... #获取键a1、a2、a3的值 mget a1 a2 a3
键命令
key:
#查找键,参数支持正则表达式 keys pattern #查看所有键 keys * #查看名称中包含a的键 keys a*
exists
#判断键是否存在,如果存在返回1,不存在返回0 exists key1 #判断键a1是否存在 exists a1
type:
#查看键对应的value的类型 type key #查看键a1的值类型为redis⽀持的五种类型中的⼀种 type a1
delete:
#删除键及对应的值 del key1 key2... #删除键a1、a2 del a2 a3
expire:
#设置过期时间,以秒为单位 #如果没有指定过期时间则⼀直存在,直到使⽤DEL移除 expire key seconds #设置键a1的过期时间为3秒 expire a1 3
ttl:
#查看有效时间,以秒为单位 ttl key #查看键a1的有效时间 ttl a1
hash类型
- ash⽤于存储对象,对象的结构为属性、值
- 值的类型为string
hset:
#设置单个属性 hset key field value #设置键 user的属性name为xiaoming hset user name xiaoming
hmset:
#设置多个属性 hmset key field1 value1 field2 value2 ... #设置键u2的属性name为itcast、属性age为11 hmset u2 name itcast age 11
hkeys:
#获取指定的键的所有的属性 hkeys key #获取键a1的所有属性 hkeys a1
hget:
#获取多个属性的值 hmget key field1 field2 ... #获取键u2属性name的值 hget u2 name
hmget:
#获取多个属性的值 hmget key field1 field2 ... #获取键u2属性name、age的值 hmget u2 name age
hvals:
#获取所有属性的值 hvals key #获取键u2所有属性的值 hvals u2
hdel
#删除整个hash键及值,使用del命令 #删除属性,属性对应的值会被一起删除 hdel key field1 field2 ... #删除键u2的属性age hdel u2 age
list类型
- 列表的元素类型为string
- 按照插入顺序排序
lpush
#在左侧插入数据 lpush key value1 value2 ... #从键为a1的列表左侧加⼊数据a 、 b 、c lpush a1 a b c
rpush
#在右侧插入数据 rpush key value1 value2 ... #从键为a1的列表右侧加⼊数据0、1 rpush a1 0 1
linsert
#在指定元素的前或后插入新元素 linsert key before或after 现有元素 新元素 #在键为a1的列表中元素b前加⼊3 linsert a1 before b 3
lrange
#start、stop为元素的下标索引 #索引从左侧开始,第⼀个元素为0 #索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素 #返回列表里指定范围内的元素 lrange key start stop #获取键为a1的列表所有元素 lrange a1 0 -1
lset
#设置指定索引位置的元素值 lset key index value #修改键为a1的列表中下标为1的元素值为z lset a 1 z
lrem
#列表中前count次出现的值为value的元素移除 #count > 0: 从头往尾移除 #count < 0: 从尾往头移除 #count = 0: 移除所有 #删除指定元素 lrem key count value #向列表a2中加⼊元素a、b、a、b、a、b lpush a2 a b a b a b #从a2列表右侧开始删除2个b lrem a2 -2 b
ltrim
#截取保留的元素 ltrim key start stop # 只保留前三个元素(0-2) ltrim name 0 2
set类型
sadd:
#添加元素 sadd key member1 member2 ... #向键a3的集合中添加元素zhangsan、lisi、wangwu sadd a3 zhangsan sili wangwu
smembers
#返回所有的元素 smembers key #获取键a3的集合中所有元素 smembers a3
srem
#删除指定元素 srem key #删除键a3的集合中元素wangwu srem a3 wangwu
zset类型:
- sorted set,有序集合
- 元素为string类型
- 元素具有唯一性,不重复
- 每一个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
- 注:zset类型没有修改操作
zadd
#添加 zadd key score1 member1 score2 member2 ... #向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,权重分别为4、5、6、3 zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
zrange
#返回指定范围内的元素(-1表示最后一个元素) #start、stop为元素的下标索引 #索引从左侧开始,第一个元素为0 #索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素 zrange key start stop #获取键a4的集合中所有元素 zrange a4 0 -1
zrangebyscore
#返回score值在min和max之间的成员 zrangebyscore key min max #获取键a4的集合中权限值在5和6之间的成员 zrangebyscore a4 5 6
zscore
#返回成员member的score值 zscore key member #获取键a4的集合中元素zhangsan的权重 zscore a4 zhangsan
zrem
#删除指定元素 zrem key member1 member2 ... #删除集合a4中元素zhangsan zrem a4 zhangsan
zremrangebyscore
#删除集合a4中元素zhangsan zrem a4 zhangsan #删除权重在指定范围的元素 zremrangebyscore key min max #删除集合a4中权限在5、6之间的元素 zremrangebyscore a4 5 6
StrictRedis对象⽅法
引⼊模块
#引入模块 #这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作 from redis import StrictRedis
通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0
sr = StrictRedis(host='localhost',port=6379,db=0)
简写:
sr = StrictRedis()
string-增加
try: #创建StrictRedis对象,与redis服务器建⽴连接 sr=StrictRedis() #添加键name,值为itheima result=sr.set('name','xiaoming') #输出响应结果,如果添加成功则返回True,否则返回False print(result) except Exception as e: print(e)
string-获取
try: #创建StrictRedis对象,与redis服务器建⽴连接 sr=StrictRedis() #获取键name的值 result = sr.get('name') #输出键的值,如果键不存在则返回None print(result) except Exception as e: print(e)
string-修改
try: #创建StrictRedis对象,与redis服务器建⽴连接 sr=StrictRedis() #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加 result = sr.set('name','xiaoming') #输出响应结果,如果操作成功则返回True,否则返回False print(result) except Exception as e: print(e)
string-删除
try: #创建StrictRedis对象,与redis服务器建⽴连接 sr=StrictRedis() #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加 result = sr.delete('name') #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0 print(result) except Exception as e: print(e)
获取键
try: #创建StrictRedis对象,与redis服务器建⽴连接 sr=StrictRedis() #获取所有的键 result=sr.keys() #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表 print(result) except Exception as e: print(e)