注:redis的命令对大小写不敏感,所以命令关键词可以大写哦。
redis是key-value的数据,所以每个数据都是一个键值对。
键的类型是字符串
值的类型有
字符串 string
哈希 hash
列表 list
集合 set
有序集合 zset
设置键值
set key value
设置键值及过期时间,以秒为单位
setex key seconds value
设置多个键值
mset key value key value [key value ...]
对值操作
获取值
get key
# 不存在返回None
获取多个键的值
mget key [key ...]
运算(值是数字) 将key的value加1
incr key
将key的value减1
decr key
将key的value加整数
incrby key increment
将key的value减整数
decrby key decrement
追加值
#如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。
append key value
获取值长度
strlen key
对键操作
查找键,参数支持正则
keys pattern
实例
# 查找所有键
keys *
# 查找以str开头的所有键
keys str*
判断键是否存在
exists key [key ...]
#存在返回1 不存在返回0
查看键对应的值的类型
type key
删除键及对应值
del key [key ...]
设置过期时间,以秒为单位
#键值对创建时没有设置过期时间则一直存在,直到该键被删除
#对已有键设置过期时间
expire key seconds
#设置成功返回1
查看键的有效时间,以秒为单位
ttl key
哈希 hash
hash 用于存储对象,对象的格式为键值对
设置单个属性
hset key field value
#实例
hset person1 name 'xiaohong'
hset person1 age 20
hset person1 gender 0
设置多个属性
hmset key field value [field value ...]
#例子
hmset person2 name 'xiaoming' age 18 gender 1
获取一个属性的值
hget key field
获取多个属性的值
hmget key field [field ...]
获取所有属性和值
hgetall key
获取所有属性 field
hkeys key
获取所有值 value
hvals key
返回包含属性的个数
hlen key
判断属性是否存在
hexists key field
删除属性及值
hdel key field [field ...]
返回值的字符串长度
hstrlen key field
# 可能用不了
列表 list
列表的元素类型为string
按照插入顺序排序
在列表的头部或者尾部添加元素
在头部插入数据
lpush key value [value ...]
#实例
lpush arr1 1
lpush arr1 2
lpush arr1 3
#arr1的数据为 [3,2,1]
在尾部插入数据
rpush key value [value ...]
#实例
rpush arr1 4 5 6 7
#arr1 的数据为 [3,2,1,4,5,6,7]
在一个元素的前|后插入新元素
linsert key before|after pivot value
#实例
# 在值1前面插入8
linsert arr1 before 1 8
#arr1 的数据为 [3,2,8,1,4,5,6,7]
设置指定索引的元素值
lset key index value
#索引值是基于0的下标
#实例 实现值的替换
lset arr1 1 9
#arr1 的数据为 [3,9,8,1,4,5,6,7]
移除并返回key对应的list的第一个元素
lpop key
#实例
lpop arr1
'3'
#arr1 的数据为 [9,8,1,4,5,6,7]
移除并返回key对应的list的最后一个元素
rpop key
返回存储在key的列表中指定范围内的元素
lrange key start stop
裁剪列表,改为原集合的一个子集
ltrim key start stop
ltrim arr1 1 -1
lrange arr1 0 -1
#arr1 的数据为 [8,1,4,5,6,7]
返回存储在key里的list的长度
llen key
返回列表中索引对应的元素
lindex key index
无序集合 set
无序集合,元素类型为string类型
元素具有唯一性,不重复
添加元素
sadd key member [member ...]
返回key集合所有的元素
smembers key
返回集合元素个数
scard key
求多个集合的交集
sinter key [key ...]
求集合与集合之间的差集
sdiff key [key ...]
求多个集合的合集
sunion key [key ...]
判断元素是否在集合中
sismeber key member
有序集合 zset
有序集合,元素类型为string类型
元素具有唯一性,不重复。
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序(元素的score可以相同) 添加
zadd key score member [score member ...]
zadd zz1 3 good 1 nice 4 handsome 2 cool 4 beautiful
返回指定范围内的元素
zrange key start stop
zrange zz1 0 4
"nice"
"cool"
"good"
"beautiful"
"handsome"
返回元素个数
zcard key
返回有序集key中,score值在min和max之间的成员个数
zcount key min max
返回有序集key中,成员member的score值
zscore key member
删除有序集的成员
zrem key member [member ...]
Python与Redis的交互
import redis
# 普通连接
conn = redis.Redis(host="ip", port=6379,password="123456")
#conn.set("x1","hello",ex=5) # ex代表seconds,px代表ms
#val = conn.get("x1")
#print(val)
pipe = conn.pipeline() #写到缓冲区
pipe.set("p1","abcd")
pipe.set("p2","efgh")
pipe.execute() #提交