redis存储是键值对类型
key是字符串
value可以是
字符串、hash、list、set、有序set
常用命令:
设置key的value值:
set key value
获取value值:
get key
先获取value值再赋值:
getset key value
删除某个key:
del key
追加:
append key value
自增(仅用于字符串是数字的):
incr key
自减:
decr key
hash的赋值:
hset key field1 value1 给hash单个属性赋值
hmset key field1 value1 field2 value2 给hash多个属性赋值
hash获取值:
hget key field1 获取hash单个属性值
hmget key field1 field2 获取hash多个属性值
hgetall key 获取所有属性值
hash删除值
hdel key field [field1...] 删除一个或者多个field的值
del key 删除整个hash
给hash中数值类型的属性加上指定数
hincrby key field 指定数 其中field的value值需要是数字
hash中判断是否在存在某个属性
hexists key field 存在返回1不存在返回0
hash获取属性个数
hlen key
hash获取所有属性名
hkeys key
hash获取所有value值
hvals key
list赋值:
lpush key value 将value加到list最左端
rpush key value 将value加到list最右端
在refvalue的前/后插入值
where(只有两个值before/after ),refvalue是list中已有的值 value是新加入的值:
linsert key where refvalue value
获取指定下标的属性值
lindex key index index下标值
给指定位置重新赋值
lset key index newValue index是指定的被替换元素的位置
移除指定值(一个或多个)
lrem key num value 移除值为value的元素num个,num为正值时,从左到右,num为负值,从右到左。
移除左侧第一个元素并返回
lpop key
移除右侧第一个元素并返回
rpop key
截取
ltrim key start end 截取下标从start到end的元素
获取分片数据
lrange key start end 获取下标从start到end的元素(并不会截取生成新的数组)
弹出第一个非空列表的第index个元素
blpop key key1 .. index timeout=(可以加响应时间)
弹出src列表的最右侧元素加到dst列表的最左侧
rpoplpush src dst
brpoplpush src dst timeout=time (响应时间)
set赋值=====
sadd key value1 value2 ....
移除set中的某些值
srem key value1 value2 .....
获取set中的全部元素
smembers key
判断set是否有某元素
sismember key value
随机返回set中的一个成员
srandmember key
获取set成员数量
scard key
set作集合运算
属于a不属于b (差集)
sdiff a b
属于b不属于a (差集)
sdiff b a
属于a且属于b (交集)
sinter a b
属于a或者属于b (并集)
sunion a b
将返回的差集存到c上
sdiffstore c a b
将返回的交集存到c上
sinterstore c a b
将返回的并集存到c上
sunionstore c a b
有序set=============
赋值:
zadd score1 member1 score2 member2 ..... 每个成员跟一个分数
返回指定成员的分数
zscore key member
返回有序set的成员个数
zcard key
移除有序set的一个或者多个指定元素
zrem key member member1 .....
查询有序set所有元素(和分数)
zrange key 0 -1 (withscores)
查询有序set从start到end的元素(和分数) 按分数从小到大排列
zrange key start end (withscores)
查询有序set,按照score范围。(带出分数) (限制查出的个数)
zrangebyscore key min max (withscores) limit begin end
查询有序set从start到end的元素(和分数) 按分数从大到小排列
zrevrange key start end withscores
删除指定的范围(按分数排名)
zremrangebyrank key start end
删除指定的范围(按分数范围)
zremrangebyscore key min max
给某成员的分数添加num
zincrby key num member
获取分数在min和max的成员个数
zcount key min max
获取某成员在有序set中的排名(从小到大排名)
zrank key member
获取某成员在有序set中的排名(从大到小排名)
zrevrank key member
匹配查询key
keys pattern
匹配符号 :?表示一个字符
* 表示0或者多个字符
举例: keys ???? 匹配key为四个字符的数据
keys *name* 匹配key中带name的数据
通用:
删除指定的key
del key1 key2 ...
判断key是否存在
exists key
重新命名key
rename key newKey
设置key超时时间,默认单位是秒
expire key time
获取key的剩余超时时间,如果返回-1,则表示没有设置超时,如果是-2,则表示已经超时
ttl key
获取key的类型
type key
订阅和发布:
subscribe key 持续获取订阅
psubscribe key* 订阅以key开头的消息
publish key content 发布内容
redis默认有16个数据库,编号0 1 2 ....15
默认登录时在0号数据库
切换数据库:
select 编号
移动某个key到指定数据库
move key 编号
redis的事务是为了redis语句的批量执行
multi 开启一个事务,之后执行的redis语句都会加入到命令队列
exec 执行命令队列的所有命令,中间命令出错也不会影响后续命令的执行
discard 回滚命令队列里的全部命令