dir -》Redis 工作目录
使用ping返回PONG
通过config get *命令可以查看
keys:遍历出所有的key,O(n)时间复杂度,生产环境不建议多用,可以在从节点用。 dbsize:计算key的总数,可以线上用,redis自带的计数器时间复杂度O(1) exists key:检查key是否存在,时间复杂度O(1) del key:删除key-value,时间复杂度O(1) expire key seconds:keys在seconds秒后过期,时间复杂度O(1) ttl key:查看key剩余的过期时间,-1表示存在但是没有过期时间,-2表示不存在。时间复杂度O(1) type key:键的类型,时间复杂度O(1) persist key:去掉key的过期时间,时间复杂度O(1)
string,hash,list,set,sorted set
raw,int,embstr,hashtable,ziplist,linkedlist,intest,skiplist
纯内存 非阻塞IO(epoll) 避免线程切换和资源竞争
1.一次只执行一条命令 2.拒绝长命令,比如keys *
结构
key hello value world key counter value 1 key bit valuee 1010101010 key j value json结构最大512M。 命令 get,set,del incr key 自增1 decr 自减1 incrby key k,自增k decrby key k 自减k
计数器 incr userid:pageview
缓存 比如访问1.mp4,首先访问redis如果没有再访问mysql,mysql查到先反给redis,然后返回给客户。redis充当缓存的功能。
分布式id生成器 set setnx setxx set key value #设置key O(1) setnx key value #key不存在才设置 类似insert O(1) setxx key value #key存在才设置 类似update O(1)
mset key1 key2 key3 O(n) mget key1 key2 key3 #节省了网络时间,批量查询,如果量大可以拆分。O(n)
getset key value,设置新值返回老值 O(1) append key value 增加 O(1) strlen key 返回字符串的长度 O(1)
incybyfloat key 3.5 #增加key对应之3.5 getrange key start end #类似切片 setrange key start end
key {field:value}
hget key field O(1) hset key field O(1) hdel key field O(1)
hexists key field O(1) hlen key field O(1) hmget key field1 file2 hmset key field1 file2
hgetall key O(n) hvals key O(n) hkeys key O(n)
TimeLine 更新使用Lpush Lrange 获取数据
blpop,lpop的阻塞版本,timeout是阻塞超时
LPUSH +LPOP =stack LPUSH +RPOP =Queue LPUSH +LTRIM =列表大小有限制 LPUSH +BRPOP =Message Queue
sadd 添加 scrad sismenember srandmemeber spop 集合弹出 smembers
添加标签,共同关注
sdiff sinter sunion
SADD 标签 SPOP/SRANDMEMBER 随机数的场景 SADD+SINTER 共同好友等功能
zadd key socre element #添加元素 zscore key element zcrad key #返回元素的个数 zrank zrem zrange 0 -1 #返回指定索引范围内的升序元素 zcount startscore endscore
排行榜 根据时间戳或者阅读数之类的。
转载于:https://www.cnblogs.com/c-x-a/p/11017233.html
相关资源:JAVA上百实例源码以及开源项目