-
Redis 是开源的,免费的,高性能的 非关系形数据库。
-
数据存储在内存,以key-value形式存储,类似于我们学习的字典 {name: ‘jack’ }
-
可以设置过期时间,过期自动删除,也可以做持久化
-
Redis 优势:
-
性能极高 – Redis读的速度是11w次/s,写的速度是8.1w次/s ,都是基于内存的,读写速度比较快。
-
丰富的数据类型 – Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
-
原子性 – Redis的所有操作都是原子性的,要么成功执行,要么失败不执行。支持简单的事务,即原子性,通过MULTI和EXEC指令包起来。如下所有的操作全部执行或者全部不执行
-
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
-
Redis的缺点:
-
基于内存型数据库, 主机断电时数据全部丢失。
-
key同时过期会造成Redis数据库的“雪崩”,容易把整个服务搞垮。
-
Redis通用命令
-
redis默认有16个 数据库(0-15) select 3 切换到数据库3
info 查看redis服务的信息 info replication查看主从复制的状况
keys * 查看所有的key, 生产环境中不使用 可能阻塞redis
查看key的数据类型 type key1
key 是否存在 exists key1
删除一个key del key1
重命名 rename key key1
清空数据库 flushdb/flushall
-
数据操作
-
设置key-value
-
>set name jack >mset name jack age 23 addr China >append key val 追加
python实现
import redis r=redis.Redis(host="localhost",port=6379,db=0) r.set("name","jack") r.mset({"name":"jack","age":23,"hobby":"football"})
-
获取key的值
-
get name mget name age hobby
python实现
r.get("name") #返回字节串 r.mget("name","age","hobby") #返回值列表
-
设置key时,设置过期时间
-
#10s后过期 set name jack ex 10 #不存在时,设置key set name jack nx
python实现
r.set("name","jack",ex=10) r.set("name","666",nx=True)
-
获取字符串值的长度
-
strlen name
python实现
r.strlen("name")--->int
-
获取字符串的分片
-
set name jack getrange name 0 1 #包含1 -->ja
python实现
r.set("name","jack") r.getrange("name",0,1) -->分片的字节串b'ja'
-
设置字符串的片段值
-
set name beikehan setrange name 1 oo -->bookehan
python实现
r.setrange("name",1,"oo")
-
数值加1、减1
-
set age 23 incr age 只能整型数值 -->24 decr age -->23
-
数值加5、减5
-
set age 10 incrby age 5 只能整形 -->15 decrby age 5 -->10 incrbyfloat age 1.3 转为字符串 incrbyfloat age -1.2
字符串的使用场景
关于redis 如何操作
最新推荐文章于 2023-03-08 18:32:10 发布