1、新增键值
a、设置键值
set key value
set name 'ming'
b、设置键值及过期时间,以秒为单位
setex key seconds value
ttl key 查看剩余消失的时间
setex name 10 'xiaoming'
c、设置多个键值
mset key value [key value ……]
mset name "lili" age 18 sex 'girl'
2、获取
a、根据键获取值,如果键不存在则返回None(null 0 nil)
get key
get name
b、根据多个键获取多个值
mget key [key ……]
mget name age
3、运算
要求:值是字符串类型的数字
a、将key对应的值加1
incr key
incr score
b、将key对应的值减1
decr key
decr score
c、将key对应的值加整数
incrby key intnum
incrby score 10
d、将key对应的值减整数
decrby key intnum
decrby score 20
4、其它操作
a、追加值,并返回字符串的长度,若name不存在则创建一个
append key value
append name "hello"
b、获取值长度
strlen key
strlen name
key
1、查找键,参数支持正则
keys pattern
#查询所有的键 【*代表任意多个任意字符】
keys *
#查询以n开头所有的键
keys n*
#查询以n结尾的所有的键
keys *n
2、判断键是否存在,如果存在返回1,不存在返回0
exists key
exists name
3、查看键对应的value类型
type key
#查看键对应值的类型
type name
4、删除键及对应的值,若键存在,删除成功,则返回删除成功的个数,若键不存在,执行删除则返回0
del key [key ……]
#一次性删除一个key
del name
#一次性删除多个key
del name age
#注意:当key删除的同时,value也随之消失
5、设置过期时间,以秒为单位
expire key seconds
expire name 10
6、查看有效时间,以秒为单位,若键不存在,则返回-2,若键存在但是未设置过期事件则返回-1,若已设置过期事件,则返回剩余有效时间。
ttl key
ttl name
保存(持久化:)
save 保存到硬盘当中
bgsave 后台保存
hash
概述:hash用于存储对象
stu1 {
name:“tom”,
age:18
}
1、设置
a、设置单个值
#语法
hset key field value
例如:
hset stu name 'lili'
b、设置多个值
#语法
hmset key field value [field value ……]
例如:
hmset stu name 'lili' age 18
2、获取
a、获取一个属性的值
#语法
hget key field
例如:
hget stu name
b、获取多个属性的值
#语法
hmget key filed [filed ……]
例如:
hmget stu name age
c、获取所有属性和值
#语法
hgetall key
例如:
hgetall stu
d、获取所有属性
hkeys key
例如:
hkeys stu
e、获取所有值
hvals key
例如:
hvals stu
f、返回包含数据的个数,【对象属性的个数,或者hash的长度】
hlen key
例如:
hlen stu
3、其它
a、判断属性是否存在,存在返回1,不存在返回0
hexists key field
例如:
hexists stu name
b、删除属性及值,删除成功则返回1,删除失败返回0
hdel key field [field ……]
例如:
hdel stu name age
c、返回值的字符串长度
# hstrlen key field
# hstrlen stu name
注意:版本大于3.2的的才支持
list
概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
1、新增
a、在头部插入
lpush key value [vlaue ……]
例如:
lpush list1 “good” “nice” “great”
b、在尾部插入
rpush key value [vlaue ……]
例如:
rpush list1 “haha” “呵呵呵”
c、在一个元素的前|后插入新元素
linsert key before|after pivot value
例如:
linsert list1 before “haha” “哈哈”
linsert list1 after “haha” “hehe”
d、设置指定索引的元素值,会覆盖指定的索引值的原本的值【使用此方法不会增加列表的长度】{更新某个index的值}
lset key index value
例如:
lset list1 0 “啊哈哈”
注意:index从0开始
注意:索引值可以是负数,表示偏移量是从list的尾部开始,如-1表示最后一个元素
2、获取
a、移除并返回key对应的list的第一个元素
lpop key
例如:
lpop list1
b、移除并返回key对应的list的最后一个元素
rpop key
例如:
rpop list1
c、返回存储在key的列表中的指定范围的元素
lrange key start end
例如:
lrange list1 0 4
注意:start end都是从0开始
注意:偏移量可以是负数
3、其它
a、裁剪列表,得到的新集合为原集合的一个子集,并且覆盖原集合【类似于批量删除】
ltrim key start end
例如:
ltrim list1 0 3
注意:start end都是从0开始
注意:偏移量可以是负数
b、返回存储在key里的list的长度
llen key
例如:
llen list1
c、返回列表中索引对应的值
lindex key index
例如:
lindex list1 0
五、set
概述:无序集合,元素类型为String类型,元素具有唯一性,不重复
1、设置
a、添加元素
b 删除元素
语法
del key
sadd key member [member ……]
例如:
sadd set1 12 34 45 66
2、获取
a、返回key集合中所有元素
smembers key
例如:
smembers set1
b、返回集合元素个数
scard key
例如:
scard set1
3、交集
a、求多个集合的交集
sinter key [key ……]
例如:
sinter set1 set2
b、求多个集合的差集 ,返回 key1的差集
sdiff key1 [key ……]
例如:
sdiff set1 set2
c、求多个集合的合集【并集】
sunion key [key ……]
例如:
sunion set1 set2
d、判断元素是否在集合中,存在返回1,不存在返回0
sismember key member
例如:
sismember set1 12
六、zset
1、增
a、添加
#语法
zadd key score member [score member ……]
#示例
zadd z1 1 a 5 b 3 c 2 d 4 e
2、获取
a、返回指定范围的元素
zrange key start end
b、返回元素个数
zcard key
c、返回有序集合key中,score在min和max之间的元素的个数
zcount key min max
d、返回有序集合key中,成员member的score值
zscore key member
与python交互
import redis
#连接
r = redis.StrictRedis(host="localhost", port=6379)
#方法1:根据数据类型的不同,调用响应的方法
#写
#r.set("p1", "good")
#读
#print(r.get("p1"))
#方法2:pipeline
#缓冲多条命令,然后依次执行,减少服务器-客户端之间的TCP数据包
pipe = r.pipeline()
pipe.set("p2", "nice")
pipe.set("p3", "handsom")
pipe.set("p4", "cool")
pipe.execute()
对redis进行封装
import redis
class HelperRedis():
def __init__(self, passwd, host="localhost", port=6379):
self.__redis = redis.StrictRedis(host=host, port=port, password=passwd)
def set(self, key, value):
self.__redis.set(key, value)
def get(self,key):
if self.__redis.exists(key):
return self.__redis.get(key)
else:
return ""