redis常用操作命令

本文详细介绍了Redis的各种操作命令,包括启动与连接Redis、管理键值、字符串操作、哈希表、列表、集合、有序集合、排序、事务、订阅与发布等功能。还涉及到了Redis的数据持久化选项如RDB和AOF,以及服务器管理和备份策略。
摘要由CSDN通过智能技术生成
redis常用操作命令
1、常用的管理
1)启动redis
# 配置参数的方式启动
redis-server redis.windows.conf
# 指定端口号
redis-server [--port 6379]
2)连接redis
./redis-cli [-h 127.0.0.1 -9 6379]
3)停止redis
redis-cli shutdown
#或者根绝进程id直接杀掉
kill redis-pid
4)测试连通性
127.0.0.1:6379> ping
PONG

2、key值操作
#获取所有键
keys *
#*表示通配符,表示任意字符,会遍历所有键显示所有的键列表,时间复杂度O(n),在生产环境不建议使用。
#获取键总数
dbsize
#获取总键数时不会遍历所有的键,直接获取内部的变量,时间复杂度0
#查询键是否存在
exists key
exists [key]#查询多个键,返回个数
#查询键类型
type key
object encoding key 查看value的编码格式
#移动键
move key db
#查询key的有效期
ttl key  #秒语法
pttl key #毫秒语法
#设置过期时间
expire key seconds  #秒语法
pexpore key seconds  #毫秒语法
#设置永不过期
persist key
#更改键名称
rename key newkey
#清除指定的库
flush db
3、String类型操作
#存放键值对
set key value
#如果不存在,插入
setex key secound value
#删除键值
del key
#获取键值对
get key
#设置值,返回旧值
getset key newvalue
#值递增,递减(如果字符串中的值是数字类型,可以使用incr命令每次递增,不是数字类型的则报错)
incr key #递增
decr key #递减
#一次想递增N的话,用incrby命令,如果是浮点型数据,可以用incrbyfloat命令递增
#同样,递减用decrby/decrbyfolat

#批量存放键值
mset key value [key value...]
mset key1 value1 key2 value2 key3 value3
#批量获取键值
mget key[key...]
mget key1 key2 key3
#获取长度
strlen key
#追加内容(向键值尾部添加)
append key value
#获取部分字符
getrange key start end
4、hash类型操作

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

#将哈希表 key 中的字段 field 的值设为 value 。
HSET key field value
#同时将多个 field-value (域-值)对设置到哈希表 key 中。
HMSET key field1 value1 [field2 value2]
#获取所有给定字段的值
HMGET key field1 [field2]
#获取哈希表中的数量
hlen key
#获取哈希表中的键值
hkeys key
#获取哈希表中所有的值
HVALS key
#判断哈希表中是否存在字段
HEXISTS key field
#删除一个或者多个哈希表中的字段
hdel key field1[field2...]
#获取在哈希表中指定 key 的所有字段和值
HGETALL key
#只有在字段 field 不存在时,设置哈希表字段的值。
HSETNX key field value
#为哈希表key中的指定字段的整数值加上增量 increment 。
HINCRBY key field increment
5、list类型操作
#将一个元素值插入列表头部
lpush key value
#将一个或者多个元素值插入列表头部
LPUSH key value [value...]
#右插入
rpush key value[value...]
#获取列表指定范围内的元素
lrange key start end
#移出并获取列表的第一个元素
lpop key
#移除列表的最后一个元素,返回值为移除的元素。
rpop key
#获取list数量
llen key
#移出元素
lrem key count value 
##count>0 从表开始向结尾搜索,移除与value相等的元素,数量为count
##count<0 从表结尾向表头搜索,移除与value相等的元素,数量为count的绝对值
##count=0 移除表中所有与value相等的值
#通过索引设置索引位置的值
lset key index value
#对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
ltrem key start stop
#在列表的元素前插入元素
LINSERT key BEFORE pivot value 
#在列表的元素后插入元素
LINSERT key AFTER pivot value
#移除列表的最后一个元素,并将该元素添加到另一个列表并返回
rpoplpush list list2
#从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOPLPUSH source destination timeout
#移出并获取列表中的第一个元素,如果列表没有元素会阻塞直到等待超时或者发现元素弹出为止
blpop key [key...] timeout
6、set类型操作

集合类型和列表类型相似,只不过是集合是无序且不可重复的。

#存储值
sadd key member[member...]
#获取元素
smembers key
#随机获取语法
srandmember langs count
#判断元素在集合中是否存在
sismember key member
#获取集合元素个数
scard key
#删除集合元素
srem key member[member]
#操作:集合间运算:差集 | 交集 | 并集
sdiff key1 key2 #取key1中存在,key2中不存在的值
sinter key1 key2 #取key1和key2的交集
sunion key1 key2 #取key1和key2的并集
#从集合中弹出一个元素(集合中的元素出栈)
spop key
7、zset类型操作

和列表的区别:

1、列表使用链表实现,两头快,中间慢。有序集合是散列表和跳跃表实现的,即使读取中间的元素也比较快。

2、列表不能调整元素位置,有序集合能。

3、有序集合比列表更占内存。

#存储值
zadd key score member [score member ...]
#查看集合成员数量
zcard key
#增长分数
zincrby key num member   例:zincrby zset1 4 yuwen zset1集合中的yuwen学科增加4分
#获取分数
zscore key member
#按顺序索引取值,取第几名到第几名
zrange key start end [withscores]  #withscores 带分数显示
#指定范围的值
zrangebyscore key socre_start socre_end withscores
#指定范围的值,并且分页
zrangebyscore key socre_start socre_end withscores limit 1 2 分页
#获取指定范围的值的元素数量
zcount key min max
#删除一个或多个元素
zrem key member[member...]
#按照排名范围删除元素
zremrangebyrank key start end
#按照分数排名范围删除原色
Zremrangebyscore  key start end
#查看所有的元素
Zrank key 0 -1 分数最小的排名为0
zrevrank key 0 -1 分数最大的排名为0
8、排序
sort mylist  排序
sort mylist alpha desc limit 0 2 字母排序
sort list by it:* desc           by命令
sort list by it:* desc get it:*  get参数
sort list by it:* desc get it:* store sorc:result  sort命令之store参数:表示把sort查询的结果集
9、事务
10、
订阅与发布:
    订阅频道:subscribe chat1
    发布消息:publish chat1 "hell0 ni hao"
    查看频道:pubsub channels
    查看某个频道的订阅者数量: pubsub numsub chat1
    退订指定频道: unsubscrible chat1   , punsubscribe java.*
    订阅一组频道: psubscribe java.*
redis事物:
     隔离性,原子性, 
     步骤:  开始事务,执行命令,提交事务
             multi  //开启事务
             sadd myset a b c
             sadd myset e f g
             lpush mylist aa bb cc
             lpush mylist dd ff gg

服务器管理
    dump.rdb
    appendonly.aof
    //BgRewriteAof 异步执行一个aop(appendOnly file)文件重写
    会创建当前一个AOF文件体积的优化版本
    
    //BgSave 后台异步保存数据到磁盘,会在当前目录下创建文件dump.rdb
    //save同步保存数据到磁盘,会阻塞主进程,别的客户端无法连接
    
    //client kill 关闭客户端连接
    //client list 列出所有的客户端
    
    //给客户端设置一个名称
      client setname myclient1
      client getname
      
     config get port
     //configRewrite 对redis的配置文件进行改写


rdb
save 900 1
save 300 10
save 60 10000


aop备份处理
appendonly yes 开启持久化
appendfsync everysec 每秒备份一次


命令:
bgsave异步保存数据到磁盘(快照保存)
lastsave返回上次成功保存到磁盘的unix的时间戳
shutdown同步保存到服务器并关闭redis服务器
bgrewriteaof文件压缩处理(命令)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值