redis 常用指令

# redis

启动redis服务

redis-server /myredis/redis7.conf

启动redis客户端

redis-cli -a 1111111  -p  6379   --raw(解决中文乱码)

退出不关闭

quit

关闭服务器

单例 redis-cli   -a 1111111 shutdow

多例  redis-cli -p 6379  shutdown

## redis 常用命令

### keys

- keys  *             查看当前库所有的key
- exists key        判断某个key是否存在
- type   key        查看key的类型
- del   key          删除key
- unlink  key      非阻塞删除,仅仅将keys从keyspace 元数据中删除,真正的删除会在后续异步中操作
- ttl  key               查看还有多少秒过期。-1表示永不过期,-2表示已经过期
- expire  key  秒钟  为给定的key设置过期时间
- move  key dbindex      将当前数据库的key 移动到给定的db数据库
- select  dbindex   切换数据库【0-15】默认0
- dbsize   查看当前数据库key的数量
- flushdb  清空当前数据库
- flushall   通杀全部数据库

### String key

- 单值单value
- set    key   value
- get  key 
- mset  | mget   同时设置/获取多个键值
- getrange/setrange   获取指定区间范围的值
- incr    key    递增数字 一定要是数字才能进行加减 
- incrby  key   2  (increment)
- decr     key      递减数值
- decrby  key   decrement  减少指定的整数   
- setlen  key    获取字符串长度
- append  key  value  内容追加
- setnx  key   value     分布式锁
- getset     先get在set
- 抖音点赞,商品点赞

### List key

- 单key多value

- lpush    key   value1[value2]   将一个值或多个值插入到已存在的列表的头部

- rpush   key   value1 [value2]   将一个值或多个值插入到已存在的列表

- lpop      key     移出并获取列表第一个元素

- rpop     key      移出并获取列表最后一个元素

- lindex   key  index1  index2   通过索引获取列表中的元素

- llen       key        获取列表长度

- lrem     key    数字N   给定值V1    删除N个值等于V1的元素

- ltrim     key    开始index   结束index  截取指定范围的值然后赋值给key

- rpoplpush    源列表  目标列表      移除列表的最后一个元素,并将该元素添加到另一个列表

- lset     key  index  value     添加指定位置元素 的值

- linsert   key    before/after  已有值    插入新值    在list某个已有值的前后在添加具体元素

  - 微信公众号订阅消息

  ​	

### Hash  key 

- KV模式不变,但是V是一个键值对  Map<String,Map<Object,Object>
- hset   key   field  value   将哈希表key中的filed的值设置为value
- hmset   key   field1  value1 [ field2  value2] 同时将多个 field  value(域-值)对设置到哈希表key中
- hget     key       field    获取在哈希表中指定字段的值
- hmget  key   field1  [ field2 ]   获取多个在哈希表中指定字段的值
- hgetall   key      获取指定key的所有字段和值
- hdel     key   field1  [ field2 ]   删除一个或者多个哈希表字段
- hlen      key     获取哈希表的字段数量
- hexists  key   field   判断哈希表key中,指定的字段是否存在
- hkeys   key   获取所有哈希表中的字段
- hvalues key  获取所有的值
- hsetnx   key field  value   只要在字段不存在时,设置哈希表字段的值
- hincrby  key field  increment 为哈希表key中的字段的整数加上增量increment
- hincrbyfloat   key field  increment 为哈希表key中的字段的浮点数数加上增量increment
- JD购物车早期 设计当前日期不在采用,当前中小厂可用



### Set  key 

- 单值多value,且无重复
- sadd   key   member[menber...]     向集合添加一个或者多个元素
- smembers   key                                 遍历集合中的所有元素
- sismember   key   member             判断元素是否在几个中
- srem   key   member[member]      删除元素
- scard   key  							            获取集合元素个数
- srandmember  key  [数字]               从集合中随机展现设置的数字个数元素,元素不删除
- spop  key   [数字]   						   从元素中弹出一个元素,出一个删一个
- smove   key1  key2  key元素值   	将key1里已存在的某个元素赋值给key2
- sdiff key [key...]		   					 集合差集     属于A但不属于B
- sunion   key [key...]		   			   集合的并集  属于A+属于B
- sinter key [key...]			   		   	集合的交集  属于A,属于B
- 微信抽奖小程序
- 微信朋友圈点赞查看同赞朋友
- qq内推可能认识的人



### Zset  key

- 在set基础上,每个val值前加一个score分数值.之前set是k1v1 v2 v3,  现在zset是k1 score1 v1 score2 V2
- ZADD key score member [score member ...]    添加元素
- ZRANGE key start stop [WITHSCORES]                按照元素分数从小到大的顺序 返回索引从start到stop之间的所有元素
- zrevrange  key start stop [WITHSCORES]           按照元素分数从大到小的顺序 返回索引从start到stop之间
- ZRANGEBYSCORE key min max [WITHSCORES1] [LIMIT offset count]  获取指定分数范围的元素 limit 作用是返回限制  开始下标 多少步
- ZSCORE key member                   获取元素的分数
- ZCARD key                                       获取集合中元素的数量
- zrem key 某score下对应的value值,作用是删除元素 
- ZINCRBY key increment member   增加某个元素的分数
- ZCOUNT key min max        获得指定分数范围内的元素个数
- zrank key values值,作用是获得下标值
- zrevrank key values值,作用是逆序获得下标值



### bitmap key

- 由0和1状态表现的二进制位的bit数组
- setbit key offset value         setbit 键 偏移位 只能零或者1    Bitmap的偏移量是从零开始算的
- getbit key offset          得到key位图中 偏移量offset 的值
- strlen  key   统计字节数占用多少
- bitcount  key    全部键里面含有1的有多少个? 









### 事务

- 可以一次执行多个命令,本质是一组命令的集合。个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞
- 一个队列中,一次性、顺序性、排他性的执行一系列命令
- 正常执行   MULTI 开启事务     中间命令    EXEC执行事务
- 放弃事务   MULTI 开启事务     中间命令    DISCARD放弃执行事务
- 全体连坐   MULTI 开启事务      中间命令出错时 全部不执行
- 冤头债主   MULTI 开启事务      中间命令运行时出错时 出错的不执行
- watch监控   watch  key监控key    MULTI 开启事务    中间命令       EXEC执行事务                                               如果在监控的key执行前被修改了 放弃执行事务                          
- unwatch   放弃监控
- 小节
  - 开启: 以MULTI开始一个事务
  - 入队: 将多个命令入队到事务中接到这些命令并不会立即执行而是放到等待执行的事务队列里面
  - 执行:由EXEC命令触发事务





### 管道

- 面试题  如何优化频繁命令往返造成的性能瓶颈?
- 定义:pipeline是为了解决RT往返回时,仅仅是将命令打包一次性发送对整个Redis的执行不造成其它任何影响
- 批处理命令变种优化措施,类似Redis的原生批命令(mget和mset)
- 将需要执行的命令放到一个文件   cat   cmd.txt | redis-cli  -a  1111111  --pipe




















  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值