Redis简介
Redis是一种Key-value数据库。
Redis是nosql(非关系型数据库)技术阵营的一员,可以胜任如缓存、队列系统的不同角色。
Redis特性
Redis与其他key-value缓存产品有以下三个特点:
-
Redis支持数据库持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
-
Redis不仅仅支持简单的key-value类型数据,同时还提供 list、set、zset、hash等数据结构的存储。
-
Redis支持数据备份,即master-slave(主从)模式的数据备份。
Redis优势
- 性能极高:读取速度快!!! 读110000次/s,写81000次/s。差不多是mysql读写速度的8~20倍。
- 丰富的数据类型:支持 String、Lists、Sets、Hashes、Ordered Sets等操作。
- 原子:Redis的所有操作都是原子性的,同时支持几个操作全并后的原子性执行。
- 丰富的特性:支持publish/subscribe,通知,key过期等。
Redis应用场景
- 做缓存:redis的所有数据是放在内存中的(内存数据库)。
- 在特定场景下代替传统数据库:如社交类应用。
- 大型系统中,实现特定功能如session共享、购物车。
数据操作
启动服务:redis-server
启动客户端:redis-cli
操作String
- 单个键值对:set key value
- 多个键值对,有效期:setex key second value
- 设置多个键值对:mset key1 value1 key2 value2…
- 追加值:append key value
获取数据
- 获取单个值:get key
- 获取多个值:mget key1 key2…
通过键查看值
- 查看所有的键:keys *
- 查看以a开头的键:keys a*
- 看键是否存在:exists key1
- 查看键的类型:type key1
删除键值对
- 删除键: del key1 key2…
- 设置键有效期,删除键:expire key seconds
- 查看键的有效期:ttl sex
清空redis
- flushall
操作hash
-
增加数据:hset person name zhouxiangqian
hmset key field1 value1 field2 value2…
-
获取数据:hget key field
hmget key field1 field2…
-
删除数据:hdel key field1 field2…
操作List
- 插入数据:
左侧插入数据 lpush list 1 2 3 4
右侧插入数据 rpush list 7 8 9
指定key,旧元素位置前插入元素 linsert key before oldvalue newvalue
指定key,旧元素位置后插入元素 linsert key after oldvalue newvalue
-
获取数据:
-
获取从编号start位置到编号stop位置的元素
lrange key start stop
(最后一个元素可以使用-1表示)
2. 设置指定索引位置的元素值:lset key index value
-
-
删除数据:
-
将key域列表中,前count次,值为value的元素删除:
lrem key count value
如:lrem list 0 a
lrem list -1 c
lrem list 2 b
tip:count>0:从头开始数
count<0:从尾到头
count=0查找所有元素
-
操作set
-
添加元素
向key域(集合)添加多个元素 sadd key member1 member2…
sadd set 1 2 3 4 5 6 7
-
获取元素
获取key域(集合)所有元素:smembers set
-
删除元素
删除指定key元素值:srem key value
操作zset
-
增加数据
- 向key域集合中添加多个score1,member1数据
- 格式:zadd key score1 member1 score1 member2…
- zadd zset 10 zhangsan 20 lisi 30 wangwu
-
获取数据
-
返回指定范围内的member元素
格式:zrange key start stop(start为开始索引,stop为结尾索引)
-
获取min和max权值之间(包含)的成员值
格式:zrangbyscore key min max
-
获取key域集合中member的score权重值
zscore key member
-
-
删除数据
-
删除域集合中指定的元素值:
zrem key member1 member2…
-
删除集合中权重在指定范围内的元素:
zremrangebyscore key min max
-
pycharm中使用redis
- 首先安装redis:pip isntall redis
- 导入redis类:from redis import StrictRedis
- 创建redis对象,关联ip,port
- 进行操作