Redis常用命令大全
启动redis服务在redis的src目录下执行命令:./redis-server启动redis客户端实例在redis的src目录下执行命令:./redis-cli连接远程redis服务器:redis-cli -h host -p port -a password设置key-valueset key value获取值get key删除del key判断key是否存在exists key设置10秒过
应用场景
String :缓存,限流,计数器,分布式锁,分布式session
Hash:存储y用户信息,用户主页访问量,组合查询
List:关注人时间轴列表
Set:点赞,标签,好友关系
Zset:排行榜
常用命令
-
启动redis服务
在redis的src目录下执行命令:
./redis-server -
启动redis客户端实例
在redis的src目录下执行命令:
./redis-cli -
连接远程redis服务器:
redis-cli -h host -p port -a password -
设置key-value
set key value -
获取值
get key -
删除
del key -
判断key是否存在
exists key -
设置10秒过期
expire key 10 -
设置10毫秒过期
pexpire key 10 -
删除过期时间
persist key -
切换数据库
redis有16个数据库,默认使用0号数据库,切换数据库的命令为:
select index(index表示数据库编号) -
清空当前选中的数据库
flushdb -
清空所有数据库
flushall -
查看当前数据库的所有key
keys * -
查看字段类型
type key
string
set name ljh
get name
getrange name 0 -1 截取字符串,0对应start,1对应end
getset name new_ljh 设置值,返回旧值
mset key1 value1 key2 value2 批量设置
mget key1 key2 批量获取
setnx key value 不存在就插入(not exists)
setex key time value 过期时间(expire)
setrange key index value 从index开始替换value
incr age 执行+1
incrby age 10 执行+10
decr age 执行-1
decrby age 10 执行-10
incrbyfloat 增减浮点数
append 追加
strlen 长度
getbit/setbit/bitcount/bitop 位操作
hash
hset myhash name ljh 添加一个键值对
hget myhash name 取出值
hmset myhash name ljh age 20 note "i am notes" 批量键值对
hmget myhash name age note
hgetall myhash 获取所有的键值对
hexists myhash name 是否存在
hsetnx myhash score 100 不存在的话创建,存在的话修改
hincrby myhash id 2 增加2
hdel myhash name 删除
hkeys myhash 只取key
hvals myhash 只取value
hlen myhash 长度
list
lpush mylist a b c 左插入
rpush mylist x y z 右插入
lrange mylist 0 -1 数据集合
lpop mylist 弹出元素
rpop mylist 弹出元素
llen mylist 长度
lrem mylist count value 根据值来删除(count表示要删除多少个值为value的元素)
lindex mylist 2 指定索引的值
lset mylist 2 n 索引设值
ltrim mylist 1 2 截取指定的元素集合
linsert mylist before 1 value 在值为1前面插入value值
linsert mylist after 1 value 在值为1的后面插入value值
rpoplpush list list2 将list的最后一个元素移到list2中
set
sadd myset e 添加一个元素
smembers myset 数据集合
srem myset e 删除
sismember myset e 判断元素是否在集合中
scard key_name 获取set集合中元素个数
sdiff | sinter | sunion 操作:集合间运算:差集 | 交集 | 并集
srandmember 随机获取集合中的元素
spop 从集合中弹出一个元素
zset
zadd zset 1 one 添加一个元素(1表示score,用作排序使用)
zadd zset 2 two
zadd zset 3 three
zincrby zset 1 one 分数+1
zscore zset two 获取分数
zrange zset 0 -1 获取全部的值
zrange zset 0 -1 withscores 获取全部值并附带分数
zrangebyscore zset 10 25 withscores 分数在某个范围的值
zrangebyscore zset 10 25 withscores limit 1 2 分页
Zrevrangebyscore zset 10 25 withscores 指定范围的值从大到小排序
zcard zset 元素数量
Zcount zset 获得指定分数范围内的元素个数
Zrem zset one two 删除一个或多个元素
Zremrangebyrank zset 0 1 按照排名范围删除元素
Zremrangebyscore zset 0 1 按照分数范围删除元素
GEO地理位置
geoadd:添加地理位置的坐标。
例:GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
geopos:获取地理位置的坐标。
例:geopos Sicily Palermo
geodist:计算两个位置之间的距离。
例:GEODIST Sicily Palermo Catania
georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
例: GEORADIUS Sicily 15 37 100 km
georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
例:georadiusbymember Sicily Catania 100 km
geohash:返回一个或多个位置对象的 geohash 值。
hyperLogLog基数统计
pfadd mykey a b c d 向一个集合添加元素
pfmerge mykey3 mykey mykey2 向合并mykey和mykey2中的元素到集合mykey3中,并且没有重复元素
pfcount mykey3 查看mykey的基数(即重复元素只算一次)。
bitmap二状态需求
应用场景:一般用于二状态的情况,例如判断用户是否登录,是否打卡等二状态需求。
setbit mybitmap 0 0 设置第0位的值为0
getbit mybitmap 0 获得第0位的值
bitcount mybitmap 统计值为1的数量
订阅与发布:
订阅频道:subscribe chat1
发布消息:publish chat1 "hell0 ni hao"
查看频道:pubsub channels
查看某个频道的订阅者数量: pubsub numsub chat1
退订指定频道: unsubscrible chat1 , punsubscribe java.*
订阅一组频道: psubscribe java.*
更多推荐
所有评论(0)