redis数据库各种数据类型的增删改查命令

redis的常用数据操作:
redis是key-value的数据结构,每条数据都是一个键值对。
键的类型是字符串并且键不能重复。
   redis最基本数据类型是string 所以下面的操作可以省略引号"" 编译器能够当作字符串来识别我们的命令 值的类型分为五种:
1 字符串string
2 哈希hash
3 列表list
4 集合set
5 有序集合zset string类型命令:
1 增加、修改: 如果设置的键不存在则添加,如果存在则修改
1.1 设置键值
set key value 例如: 添加键py1 值为gj
set "py1" "gj" 1.2 设置键值及过期时间:以秒为单位,过期后数据自动删除
setex key seconds value 例如:设置键py2 的值为hr 3秒后过期
setex "py2" 3 "hr" 1.3 设置多个键值:
mset key1 value1 key2 value2 .... 例如:设置键py3值为dx 键py4值为xd 键py5值为nd 键py6值为bg
mset "py3" "dx" "py4" "xd" "py5" "nd" "py6" "bg" 1.4 追加值: 在值后追加字符串
append key value 例如:向键py1 追加haha
append "py1" "haha" 2 获取:
2.1 根据键获取值,如果不存在返回null
get key 例如:获取py1的值
get "py1" 2.2 根据多个键,获取多个值
mget key1 key2 key3 ... 例如:获取py3 py4 py5 py6 的值
mget "py3" "py4" "py5" "py6" 3 删除:删除键的时候会删除值
del key1 key2 key3 ... 键命令:
1 查找键,参数通配符查找
keys patern 例如:查看所有的键
keys *
例如:查看所有包含a的键
keys "*a*" 2 判断键是否存在,存在返回1 否则返回0
exists key 例如: 判断py1键是否存在
exists "py1" 3 查看键对应的value的类型
type key 例如:查看py1的值的类型
type "py1" 4 删除键对应的值
del key1 key2 .... 例如:删除键'py3'、'py4'、'py5'、'py6'
del 'py3' 'py4' 'py5' 'py6' 5 设置过期时间,以秒为单位。如果没有指定过期时间,则一直存在,直到使用del移除
expire key seconds 例如:设置py1的过期时间为10秒
expire "py1" 10 6 查看有效时间 秒为单位,已经失效则返回-2
ttl key 例如:查看py2的有效时间
ttl py2 hash类型命令:
hash用于存储对象,对象结构为属性、值。即 键值对中值是属性、值的组合。值的类型是string
1 增加、修改
1.1 设置单个属性
hset key field value 例如:设置py2的属性name为hr
hset "py2" name hr 1.2 设置多个属性
hmset key field1 value1 field2 value2 ... 例如:设置py3的属性name为dx 属性gender为1 属性birthday为2017-1-1
hmset py3 name dx gender 1 birthday 2017-1-1
2 获取
2.1 获取指定键的所有属性
hkeys key 例如:获取py3的所有属性
hkeys py3 2.2 获取一个属性的值
hget key field 例如:获取py2属性name的值
hget py2 name 2.3 获取多个属性值
hmget key field1 field2 .... 例如:获取py3属性name gender 和birthday
hmget py3 name gender birthday 2.4 获取所有属性
hvals key 例如:获取py3的所有属性的值
hvals py3 3 删除:
3.1 删除整个hash键值使用del命令
del key
3.2 删除属性
hdel key field1 field2... 例如:删除py3的属性gender birthday
hdel py3 gender birthday list类型命令:
列表的元素类型为string
按照插入顺序排序 1 增加
1.1 在左侧插入数据
lpush key value1 value2 ... 例如:从键py11的左侧插入数据dx xd
lpush py11 dx xd 1.2 在右侧插入数据
rpush key value1 value2 ... 例如:从py11右侧插入nd bg
rpush py11 nd bg 1.3 在指定元素的前或后插入新元素
linsert key before/after 现有元素 新元素 例如:在py11的列表中nd前加入zbt
linsert py11 before nd zbt 2 获取
2.1 返回列表里指定范围元素:
start、stop为元素的下表索引
索引从左侧开始第一个元素为0
索引可以使负数,从尾部开始,-1代表最后一个元素
lrange key start stop 例如:获取py11的列表所有元素
lrange py11 0 -1 3 删除
3.1 删除指定元素:
将表中前count次出现的值为value的元素全都移除
count>0从头开始往尾移除
count<0从尾开始向头移除
count=0移除所有
lrem key count value 例如:向列表'py12'中加入元素'h0'、'h1'、'h2'、'h0'、'h1'、'h3'、'h0'、'h1'
rpush list3 'h0' 'h1' 'h2' 'h0' 'h1' 'h3' 'h0' 'h1'
从'py12'列表右侧开始删除2个'h0'
lrem py12 -2 h0
查看列表'py12'的所有元素
lrange 'py12' 0 -1 set类型命令:
无序集合,元素为string类型,元素唯一。
对于集合没有修改操作。 1 增加 添加元素
sadd key member1 member2 ... 例如:向py21的集合里添加元素 yg xin yzp
sadd py21 yg xin yzp 2 获取 返回所有的元素
smembers key 例如:获取py21的所有元素
smembers py21 3 删除 删除指定元素
srem key member 例如:删除py21中的yzp
srem py21 yzp zset类型命令:
sorted set 有序集合,元素为string,元素唯一
每个元素有一个double类型的score,表示权重,zset内元素会按照权重从小到大排序
zset没有修改操作 1 增加
zadd key score1 member1 score2 member2 ... 例如:向py31集合中添加gj hr yg xin 权重分别是1 5 8 3
zadd py31 1 gj 5 hr 8 yg 3 xin 2 获取
2.1 返回指定范围内的元素
start stop为元素下标,左边第一个为0,右边第一个为-1
zrange key start stop 例如:获取py31的所有元素
zrange py31 0 -1 2.2 返回score值在min和max之间的成员
zrangebyscore key min max 例如:返回py31集合中权值在4到9之间的数据
zrangebyscore py31 4 9 2.3 返回成员member的score值
zscore key member 例如查看py31中yg的权值
zscore py31 yg 3 删除:
3.1 删除指定元素
zrem key member1 member2 ... 例如:删除py31中的yg
zrem py31 yg 3.2 删除权重在指定范围内的元素
zremrangebyscore key min max 例如:删除py31中权值在4到9之间的元素
zremrangebyscore py31 4 9
上一篇:用树莓派Raspberry Pi和Micro:bit做一个自拍器


下一篇:WebApp开发之--"rem"单位(转)