1、Redis操作
有16个数据库,0-15
redis-cli 进入redis,6397默认监听端口
redis-cli --raw 输出中文
select 0-15 自由选择数据库
2、redis的5大常用数据类型
(1)string(字符串)--Strings
使用场景:计数器
set name sunwukong
get name # 获取key的值
keys * # 查看所有的键名
append key_name key_value # 如果key_name已经存在一个value值,append将value追加在原来值的末尾,若key_name不存在value值,append则和set一样
del key_name # 删除
mset name1 jack1 name2 jack2 设置多个
mget name1 name2
incr key值 # 将key值中存储的数字值增1
decr key值 # 将key值中存储的数字值减1
incrby key值 指定值 # 将key值中存储的数字增加指定值
decrby key值 指定值 # 将key值中存储的数字减少指定值
type key值 # 返回key对应值的类型
exists key # 检查给定key是否存在
rename key 新key # 重命名key
过期时间
expire key 10 # 设置销毁时间
persist key # 移除过期时间
ttl key # 查询key剩余的过期时间,返回-1代表没有过期时间,-2已经过期了
2、list(列表)--lists
使用场景:消息队列、排行榜、最新列表
rpush key 值1 值2 值3 # 将一个或多个值插入到列表的尾部(最右边)
lrange key 开始值 结束值 # 返回列表中指定区间内元素
lpush key 值1 值2 # 将1个或多个值插入列表头部
lindex key 索引 # 通过索引获取列表中的值
lset key 索引 值 # 通过索引设置元素的值
rpop lname # 删除最后面的一个元素
lpop lname # 删除最前面的一个元素
3、hash(哈希)--Hashes
hash类型是一个string类型的field和value的映射表
使用场景:购物车
redis的key value 键值对模式不变,但value是一个键值对
hset key field value # 添加数据
hset hname name1 jack1
keys * # 查看所有key名
hget key_name field_name # 返回哈希表中指定的值
hget:field 存在,正常读取field对应的值,不存在返回nil
hmset:field 存在,执行覆盖操作,不存在直接存储
hmset:同时将多个 field-value (字段-值)对设置到哈希表中
hdel:删除域,该命令可以同时删除多个字段,返回值是被删除字段的数量。field存在,删除字段,返回被删除字段的数量,field不存在返回0。
hgetall key_name # 返回哈希表中所有的字段和值
hvals key_name # 返回哈希表中所有的值
hlen key_name # 获取哈希表中的数量
4、set(集合)0--Sets
set类型是string类型的集合,特点是集合元素无序且不重复
使用场景:好友、关注、粉丝、感兴趣的人集合、随机展示、黑名单/白名单
sadd key 值1 值2 值3 # 添加数据
smembers key # 返回集合中的所有成员
spop key # 随机删除
spop key 2 # 随机删除2个元素
srem key member 值1 # 指定删除,可指定删除多个
scard key # 获取有多少个元素
5、zset(有序集合)--Sorted sets
使用场景:延时队列、排行榜、限流
zadd key store1 value1 store2 value2 # 添加数据
zrange key 开始值 结束值 # 查看数据
zrangebyscore key 开始分数 结束分数 # 返回指定区间分数列表成员
zscore key value # 查看value的分数
zcard key # 计算集合中元素的数量
zrem key value # 删除数据
zremrangebyrank key 开始索引 结束索引 # 删除指定索引内的成员
zremrangebyscore key 开始分数 结束分数 # 删除指定分数内的成员
flushdb :用于清空当前数据库中所有的key
flushall:用于清空整个redis服务器的数据(删除所有数据库的所有key)
subscribe 频道号 # 用于订阅给到的一个或多个频道的信息
publish 110 "hello world" # 将"hello world" 发送到110频道
6、Python与redis的链接
安装 redis pip install redis
使用
import redis
# decode_responses = True 让redis返回的数据是str类型,如果不指定则结果为bytes.
red =redis.StrictRedis(host='127.0.0.1',decode_responses = True)
print(type(red.keys()))
print(red.keys())