info replication 查看当前库的信息
set
get
shutdown 关闭服务
exit 退出
select [index] 切换数据库
flushdb 清空数据
flushall 清空所有数据库数据
exists 判断key是否存在
keys * 列出所有key
expire [key] [seconds] 设置key的过期时间 单位秒
ttl [key] 查看key的过期剩余时间
type [key] 查看value的数据类型
append [key] [追加的值] 追加值,类似于String的append 如果当前key不存在,相当于set key
strlen [key] 查看value的长度
incr [key] 自增1
decr [key] 自减1
incrby [key] [增长量] count+增长量
decrby [key] [递减量] count-递减量
getrange [key] [0] [3] 截取字符串index :0-3
setrange [key] [index] [替换的内容] 替换指定key的值
setex [key] [seconds] [value] (set with expire) #设置过期时间
setnx [key] [seconds] [value] (set if not exitis) #如果不存在设置,如果存在设置失败
mset [key1] [value1] [key2] [value2] ..... 多个键值对存储
mget [key1] [key2]..... 多个获取
msetnx [key1] [value1] [key2] [value2] ..... 多个不存在则设置,原子操作,要么全成功,要么全失败
getset [key] [value] 先get,再set,如果key不存在,则返回nil,存在则获取原来的值,并设置新的值
list 实际上是一个链表,before Node after ,left,right 都可以插入值
如果 key不存在,创建新链表,如果key存在,新增内容
如果移除了list的所有值,空链表,也代表不存在
在两边插入或改动,效率最高,中间元素,效率相对低一些
可以用来做消息队列 。可以实现栈或者队列
lpush [key] [value] 往左边放入(在头部加入)
rpush [key] [value] 往右边放(在尾部加入) 入列
lpop [key] 移除list的第一个元素 (左)
rpop [key] 移除list的最后一个元素(右)出列
blpop[key]和brpop[key]阻塞式出队列
lindex [key] [index] 通过下标获取值(左)
rindex [key] [index] 通过下标获取值(右)
llen [key] 获取list的大小
lrem [key] [count] [value] 移除指定的值,因为value是可重复的,所以需要指定个数count
ltrim [key] [startindex] [endindex] 截取指定下标的元素
rpoplpush [source] [target] 移除最后一个,插入到新的list中(组合命令)
lset [key] [idnex] [value] 给指定下标赋值,先判断是否有该键,再判断下标是否有值,无则报错
linsert [key] [before|after] [value1] [value2] 在value1前或者后面插入value2
set:无序不重复的集合
微博:A用户把所有的粉丝放入set,也可以把所有关注的人放入set
sadd [key] [value] 添加元素
smembers [key] 查看元素
sismember [key] [value] 判断值是否存在
scard [key] 查看set元素个数
srem [key] [value] 删除value
srandmember [key] 随机抽取一个元素
spop [key] 随机删除一个value
smove [soruce set] [target set] [value] 将一个set的元素移动到另一个set
sdiff [key1] [key2] 查看key2比key1差了哪些元素
sinter [key1] [key2] 查看交集 (共同好友)
sunion [key1] [key2] 查看并集
Map集合,key-map
用户信息的保存,经常变动的信息,hash适合存储对象
hset [key] [hkey] [value] 插入map键值对
hget [key] [hkey] 获取map中的值
hsmet [key] [hkey] [value] [hkey] [value] ....插入map键值对
hmget [key] [hkey] [hkey] ..... 获取map中的值
hgetall [key] 获取全部的键值对
hdel [key] [hkey] 删除指定的键值对
hlen [key] 获取键值对的数量
hexists [key] [hkey] 判断指定的hkey是否存在
hkeys [key] 获取所有的键
hvals [key] 获取所有的值
hsetnx [key] [hkey] [value] 设置键值对的值,不存在则成功,存在则失败
hincrby [key] [hkey] [number] 设置键值对值的增量
在set的基础上增加了一个score,来控制排序
热榜,排序
zadd [key] [score] [value] 添加一个值
zadd [key] [score] [value] [score] [value] ....添加多个值
zrangebyscore [key] [min] [max] 指定最小值和最大值区间,从小到大排序
zrevrange [key] [min] [max] 指定最小值和最大值区间,从大到小排序
zrem [key] 删除元素
zcard [key] 获取元素个数
zcount [key] [minscore] [maxscore] 获取指定区间的元素个数
geoadd [key] [经度] [纬度] [城市名] 添加地理位置
geopos [key] [城市名] 获取指定城市的经度和纬度
geodist [key] [城市1] [城市2] [m|km长度单位] 获取两个城市之间的直线距离
georadius [key] [经度] [纬度] [指定半径] [长度单位] [详细信息参数] .... 获取 指定经纬度 附近的城市
详细参数:
withcoord :显示他人经纬度
withdist :显示距离
withhash :显示他人详细信息,用hash值显示
count :显示数量
zrange [key] 0 -1 查看所有城市
zrem [key] [城市名] 删除指定城市
A{1,3,5,7,8,7}
B{1,3,5,7,8}
基数(不重复的元素) =5,可以接受误差。0.81%的误差率
网页的uv(访问量,一个人访问一个网站多次,还是算作一次访问量)
优点:占用内存是固定的,占用内存少
pfadd [key] [元素] [元素] .....添加元素
pfcount [key] 统计元素个数
pfmerge [生成的key3] [key1] [key2] 去重合并key1、key2 生成key3
统计用户信息:活跃,不活跃 登录、未登录 打卡、未打卡 只有两个状态区分的
Bitmaps 位图,数据结构!都是操作二进制位来记录的,只有0和1两个状态
setbit [key] [filed] [status]
例如:用户的一周打卡记录:
? setbit [key] [0] [1]
? setbit [key] [1] [1]
? setbit [key] [2] [0]
? setbit [key] [3] [0]
? setbit [key] [4] [1]
? setbit [key] [5] [1]
? setbit [key] [6] [0]
getbit [key] [status] 获取用户某一天是否打卡
getcount [key] [status] 获取用户打卡次数
原文:https://www.cnblogs.com/hooong/p/14755130.html