**
redis键值对的数据类型和操作
对key的增删改查
redis是以key和value键值对的类型
set key value [ex nx xx]
ex 就是过期时间(秒)
nx 不存在则创建
xx 存在则创建 根据key得到value值
setnx 不存在则创建
setex 设置过期时间(秒)
setex key value 10(过期时间)
mset 批量添加
met key1 value1 key2 value2 ...
mget 批量获取
get key1 key2 key3 ...
getset key value 设置新值返回旧值
incr key 对key的值进行加一(只对整型)
decr key 对key的值进行减一(只对整型)
incrby key 5 指定增加值(5)
decrby key 5 指定减少值(5)
keys d* //列出key名是以d开头的key
keys d??? //列出key名以d开头的四位的key
rename key new_key //重定义key名
flushdb //清空当前库的key
flushall //清空所有库的key
getrange key 0 5 对key进行切片操作,返回下标0到5的(0 到 -1 表示所有)
setrange key 5 value 将key中的从下标为5开始替换,替换相应个数的值
根据不同的value类型进行创建键值对
value的数据类型有:
1、string
2、hash
3、list
4、set
5、sroted set
hash:哈希值
key可以绑定一些关联性较强的数据如:key:{xxx, xx,xx}
设置值:
hset key field value
如: hset user name tang //返回值为添加的个数
hset user home changsha
hget key
如: hget user name //获取key(user)的name的值
hmget key field1 field2 ... //获取多个
hgetall key //获取key的所有值
hmset key field1 vaule1 field2 value2 //插入多个
hkeys key //获取key的所有field
hvals key //获取所有的value值
hdel key field //删除key中的一个field
hlen key //获取key中有多少键值对
hexists key field
list:列表
lpush key value value //返回长度、
lpushx key vaule value //向列表中追加值(key存在时才会成功),返回长度
llen key //获取列表长度
lrange key start end //如: lrange key 0 -1 (获取列表内容,以下标)
linset key before 参照 new_value //插入
lset key 0 new_value //更新下标为0 的value值
lrem key 2 xxxx //移除最前面的2个相同的xxx(lrem为移除相同的)
lpop key //删除并返回列表的第一个元素
lindex key 2 //根据下标取出对应的元素
set;类似python中的set(字典),不允许重复的元素
sadd key value value ... //添加元素
scard key //获取长度
smembers key //列出所有的元素(无序不重复)
sinter key1 key1 //查看两个key的交集(两个key相同的)
sdiff key1 key2 //查看两个key的差集(两个key不同的)
sunion key1 key2 //查看两个key的并集
sinterstore key1 key2 //
sismember key member //判断member是否时key中的元素
smove key1 key2 member //将key1的memeber移动到key2中,返回移动的member个数
spop key //随机删除key中的一个元素
srem key member //指定删除元素member
srandmember key //随机获取一个元素
sorted set:按照score进行升序排序
zadd key [NX|XX] [CH] [INCR] score member [score member ...]
zadd key score1 member1 score2 member2 ... //创建
zadd key nx score member //当不存在则创建
zadd key xx score member //当存在则创建
zadd key xx incr score member //当存在则在原来的基础上增加score
zcard key //查看长度
zrange key 0 -1 //返回key下标0到-1的值
zrevrange key 0 1 withscore //取出score最大的两个
zrangebyscore key 100 400 //升序取出socer的值在100到400之间的member
zrevrangebyscore key 400 100 //降序取出socer的值在100到400之间的member
zrangebyscore key (200 inf withscore //升序取出score大于200的member
zrevrangebyscore key (200 inf withscore //降序取出score小于200的member
zrem key member //删除指定member
zremrangebyscore key 100 200 //删除score在100到200之间的member
zinterstore key3 2 key1 key2 //key3为目标,将key1和key2 的交集存到key3
zunionstore key3 2 key1 key2 //将并集存放到key3