首页 > 其他 > 详细

redis 基本命令学习

时间:2021-05-11 16:42:38      阅读:15      评论:0      收藏:0      [点我收藏+]

redis 基本命令

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命令:

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(集合)命令

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] 查看并集

hash命令

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] 设置键值对值的增量

Zset(有些集合)

在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] 获取指定区间的元素个数

三种特殊数据类型:

geospatial 地理位置

geoadd [key] [经度] [纬度] [城市名] 添加地理位置

geopos [key] [城市名] 获取指定城市的经度和纬度

geodist [key] [城市1] [城市2] [m|km长度单位] 获取两个城市之间的直线距离

georadius [key] [经度] [纬度] [指定半径] [长度单位] [详细信息参数] .... 获取 指定经纬度 附近的城市

详细参数:

withcoord :显示他人经纬度

withdist :显示距离

withhash :显示他人详细信息,用hash值显示

count :显示数量

zrange [key] 0 -1 查看所有城市

zrem [key] [城市名] 删除指定城市

hyperloglog 基数统计

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 位存储

统计用户信息:活跃,不活跃 登录、未登录 打卡、未打卡 只有两个状态区分的

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] 获取用户打卡次数

redis 基本命令学习

原文:https://www.cnblogs.com/hooong/p/14755130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!