Redis通用命令及数据结构
2019-02-20 本文已影响0人
Toyouy
目录
- 1.通用命令
- 2.数据结构和内部编码
- 3.单线程
- 4.string
- 5.hash
- 6.list
- 7.set和zset
1、通用命令(更多命令可以查看http://doc.redisfans.com/)
-
keys (一般不在生产环境使用 因为是On,并且生产key比较多所以不在生产环境使用)
-
dbsize 计算key的总数
-
exists key 检查key是否存在
-
del key [key …] 删除指定的key-value
-
expire key seconds key在多少秒后过期
-
ttl key 查看key剩余的过期时间
-
persist key 去掉key的过期时间
-
type key 返回key的类型
2、数据结构和内部编码
image.png3、单线程架构
- 纯内存 (主要)
- 2、非阻塞IO
- 3、避免线程切换和竞态消耗
注意:
1、一次只运行一条命令
2、拒绝长(慢)命令
keys, flushall, flushdb, slow lua scrpit, mutil/exec, operte big value(collection)
4、、字符串String
image.png场景:缓存、计数器、分布式锁等等
命令:
get、set、del
get key #获取key对应的value
set key value #设置key-value
del key #删除key-value
incr、decr、incrby、decrby
incr key #key自增1,如果key不存在,自增后get(key)=1
decy key #key自减1,如果key不存在,自减后get(key)=1
incrby key k #key自增k,如果key不存在,自增后get(key)=k
decrby key k #key自减k,如果key不存在,自减后get(key)=k
set、setnx、set xx
set key value #不管key是否存在,都设置
setnx key value #key不存在,才设置
set key value xx #key存在才设置
mget、mset
mget key1 key2 key3… #批量获取key,原子操作
mset key1 key2 value1 value2 … #批量设置key-value
getset、append、strlen
getset key newvalue #set key newvalue并返回旧的value
append key value #将value追加到旧的value
strlen key #返回字符串的长度(注意中文)
incrbyfloat、getrange、setrange
incrbyfloat key 3.5 #增加key对应的值3.5
getrange key start end #获取字符串指定下标所有的值
setrange key index value #设置字符串指定下标所有对应的值
image.png
image.png
5、hash
命令:
hget、hset、hdel
hget key field #获取hash key对应field的value
hset key field value #设置hash key对应field的value
hdel key field #删除hash key对应field的value
hexists、hlen
hexists key field #判断hash key是否有field
hlen key field #获取hash key field的数量
hmget、hmset
hmget key field1 field2… #批量获取hash key的一批field对应的值
hmset key field1 value1 field2 value… #批量设置hash key的一批field value