redis

Redis 是一个高性能的key-value数据库,默认端口号未6379。
redis-server.exe redis.windows.conf运行Redis服务器
redis-cli.exe运行Redis客户端

值的类型分为五种

  • 字符串string
  • 哈希hash
  • 列表list
  • 集合set
  • 有序集合zset

键值相关操作

  1. 设置键值 set key value

  2. 设置键值及过期时间,以秒为单位 setex key seconds value

  3. 设置多个键值 mset key1 value1 key2 value2 ...

  4. 获取:根据键获取值,如果不存在此键则返回nil get key

  5. 根据多个键获取多个值 mget key1 key2 ...

  6. 查找键,参数⽀持正则表达式 keys pattern
    查看名称中包含a的键 keys a*
    判断键是否存在,如果存在返回1,不存在返回0 exists key1

  7. 查看键对应的value的类型 type key

  8. 删除键及对应的值 del key1 key2 ...

  9. 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除 expire key seconds

  10. 查看有效时间,以秒为单位 ttl key

hash类型

  1. 设置单个属性 hset key field value
  2. 设置多个属性 hmset key field1 value1 field2 value2 ...
  3. 获取指定键所有的属性 hkeys key
  4. 获取⼀个属性的值 hget key field
  5. 获取多个属性的值 hmget key field1 field2 ...
  6. 获取所有属性的值 hvals key
  7. 删除整个hash键及值,使⽤del命令
    删除属性,属性对应的值会被⼀起删除 hdel key field1 field2 ...

list类型

  1. 在左侧插⼊数据 lpush key value1 value2 ...
  2. 在右侧插⼊数据 rpush key value1 value2 ...
  3. 返回列表⾥指定范围内的元素
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
  • lrange key start stop
  1. 删除指定元素
  • 将列表中前count次出现的值为value的元素移除
  • count >0: 从头往尾移除
  • count < 0: 从尾往头移除
  • count = 0: 移除所有
  • lrem key count value

set类型

⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作

  1. 添加元素 sadd key member1 member2 ...
  2. 返回所有的元素 smembers key
  3. 删除指定元素 srem key

zset类型

sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作

  1. 添加 zadd key score1 member1 score2 member2 ...
  2. 获取

返回指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第⼀个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
zrange key start stop

  1. 删除指定元素 zrem key member1 member2 ...

python交互

引⼊模块
from redis import Redis

通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0
sr = Redis(host='localhost', port=6379, db=0) #简写 sr=Redis()
string

1
2
3
4
5
6
7
set
setex
mset
append
get
mget
key

keys

1
2
3
4
5
6
exists
type
delete
expire
getrange
ttl

hash

1
2
3
4
5
6
7
hset
hmset
hkeys
hget
hmget
hvals
hdel

list

1
2
3
4
5
6
lpush
rpush
linsert
lrange
lset
lrem

set

1
2
3
sadd
smembers
srem

zset

1
2
3
4
5
6
zadd
zrange
zrangebyscore
zscore
zrem
zremrangebyscore