Redis支持的五大数据类型:string(字符串),hash(散列),list(列表),set(集合),zset(sorted set:有序集合)
Redis中都是以key-value的方式储存数据的,这里的五大数据类型指的是value的数据类型
1.string(字符串)
- string 是 redis 最基本的类型,以key-value的形式存在,value可以是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数),甚至是二进制(图片、音频、视频)
- string是二进制安全的,redis的string可以包含任何数据的二进制形式的字符串,如图片或序列化后的对象的二进制数据
- string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB
常用操作
- 在redis中的命令:
set key value —>创建键值对(key不存在)或者修改键值对(key存在)
get key —>获取key的值
del key —>删除键值对
append key str1 —>给key的字符串末尾追加字符串str1,如:abc —>abcqqq
incr key —>数字形式的字符串加1
decr key —>数字形式的字符串减1
incrby key n —>数字形式的字符串加n
decrby key n —>数字形式的字符串减n - 在python中:
import redis
r = redis.Redis(host=‘127.0.0.1’,port=6379)- 创建或修改键值对
set(key,value,ex=None,px=None,nx=False,xx=False)- key:键,value:值
ex:过期时间,单位秒
px:过期时间,单位毫秒px
nx:如果设置为 True,则只有 name 不存在时,当前 set 操作才执行
xx:如果设置为 True,则只有 name 存在时,当前 set 操作才执行
- key:键,value:值
- 获取key的value
rd.get(key) - 追加
rd.append(key,value) - 删除键值对
rd.append(key,value)rd.append(key,value) - 数字字符串加减
rd.decr(key)
rd.decr(key,n)
rd.incr(key)
rd.incr(key,n) - 获取所有key
rd.keys()
- 创建或修改键值对
2.hash(散列)
- Redis hash 是以key-hash 的形式
- Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
- 内部编码
- ziplist(压缩列表): 当field个数不超过hash-max-ziplist-entries(默认为512个)时,并且没有大value(64个字节以上算大)
- hashtable: ziplist的两个条件只要有一个不符合就会转换为hashtable