美文网首页
Redis使用心得记录

Redis使用心得记录

作者: 指间砂的宿命 | 来源:发表于2018-09-13 11:00 被阅读9次

0.通用命令

del key  # 删除key
exists key  # check某个key是否存在
expire key  # 为某个key设置过期时间
flushall  # 清空redis中所有数据

1.string操作命令

set key value  # 设置key,value;如果key已存在,则value会被覆盖
getset key value # 设置key,value: 1.如果当前key已存在,则返回被覆盖前的value 2.当前key不存在,则设置key,value并返回null
setex key seconds value  # 设置key、value,有效期seconds秒;对于已经存在的key也可以执行该操作重置value并赋予expired time
incr key # key对应的value自增,如果key对应value不是整数返回错误,如果key不存在,将value设置为 1
decr key # key对应的value自减,如果key对应value不是整数返回错误, 可以是负数
setnx key value  # 设置key、value,如果key存在则setnx失败,返回 0 (set key value nx等价)
mset key value key value # 批量设置key、value,jedis客户端需要以数组形式传递key,value...
mget key key # 批量获取key的值, jedis客户端返回value1,value2...数组

注redis中字符数据类型:

int:8 个字节的长整型
embstr:小于等于 39 个字节的字符串
raw:大于 39 个字节的字符串

2.hash操作命令

hset key field value  # 设置key对应map中的一对field value
hget key field  # 获取key对应field的value值
hdel key field   # 当key对应的hashmap中fiedl为空时,这个key会被移除
hlen key  # 计算key中field个数,不存在的key,返回0
hkeys key  # 返回key中包含的所有field
hvals key  # 返回key中map的所有value
hexists key field  # 判断key是否存在field属性

3.list操作命令

rpush key [value...]  # 从右边顺序插入
lpush key [value...]  # 从左边顺序插入
lrange key start end  # 从左到右查询list中下标从start到end的元素(包括end),索引下标从左到右是0到N,从右到左是-1到-N,lrange key 0 -1 表示查询所有元素, 并不会从list中删除查询出来的元素
lindex key index  # 获取指定下标的元素
lset key index newValue  # 修改list中指定下标的元素
llen key  # 获取list的长度
lpop key  # 从list左边弹出元素,弹出元素从list中移除
rpop key  # 从list右边弹出元素,弹出元素从list中移除
lrem key count value  #  count<0 从右到左,删除最多count绝对值个等于value的元素;count = 0 删除所有等于value的元素;count>0 从左到右,删除最多count个等于value的元素
blpop [key...] timeout  # 阻塞式的从左边弹出给定key(可以是多个)中的元素
brpop [key...] timeout  # 阻塞式的从右边弹出给定key(可以是多个)中的元素
  • 关于blpop的使用说明:
    key可以是不存在的; timeout表示阻塞时间,单位是秒(s); 如果阻塞期间取到元素(可以是多个key中任意某个pop元素),直接返回元素而不会再继续遍历;如果所有list都取不到元素,则阻塞,等到timeout时间之后会释放; timeout = 0表示如果取不到元素,一直阻塞下去。 如果多个客户端对同一个key执行blpop操作,那么最先执行blpop命令的客户端可以先取到元素。
  • 使用场景:
    • 消息队列:使用lpush和brpop命令组合可以实现阻塞队列
    • 队列:lpush + rpop
    • 栈:lpush + lpop

4.Set操作命令

sadd key [element …]  # 添加元素
srem ket [element …]  #移除元素
scard key  # 计算元素个数,时间复杂度O(1),不会遍历集合所有元素,直接使用Redis内部变量
sismember key element  # 判断元素是否在Set中
srandmember key [count]  # 从Set中随机返回count个元素,不指定count默认返回一个元素,不会移除元素
spop key  # 从Set中随机弹出一个元素,移除弹出的元素
smembers key  # 获取所有元素
sinter [key …]  # 求多个Set的交集
sunion [key …]  # 求多个Set的并集
sdiff [key …]  # 求多个Set的差集,key1和key2的差集结果和key3再取差集以此类推
sinterstore destination [key …]  # 将多个Set的交集保存到destination上
sunionstore destination [key …]  # 将多个Set的并集保存到destination上
sdiffstore destination [key …]  # 将多个Set的差集保存到destination上
  • 使用场景:
    Set类型提供了集合的交并差集运算,比较适合的场景是标签(tag)。
    例如给用户添加标签就可以通过交集查出用户的共同标签;
    给标签添加用户就可以通过交集查出有共同标签的用户。

5.Redis使用注意

  • 1.Redis默认最大连接数10000,但是受限于linux系统的最大连接数,linux可以使用ulimit -a查看open files大小,具体修改linux最大连接数命令:
$ vim /etc/security/limits.conf  # 新增如下字段
*       soft    nofile  65535
*       hard    nofile  65535
*       soft    nproc   65535
*       hard    nproc   65535
$ vim /etc/pam.d/login # 新增如下字段
session    required     pam_limits.so
# 重启服务器
  • 2.慎用keys和flushall命令,这种命令在大数据量时执行很慢会导致雪崩效应
  • 3.monitor命令会占用大量cpu,具体线程cpu使用量使用命令```top -Hp pid``查看

相关文章

  • Redis使用心得记录

    0.通用命令 1.string操作命令 注redis中字符数据类型: 2.hash操作命令 3.list操作命令 ...

  • redis + node 使用命令记录

    redis + node 使用记录 > set(key,value,redis.print) >expire(ke...

  • 2020-03-24

    Redis学习记录(一)之Redis的简介及安装使用 Redis作为NoSql较为流行使用的数据库之一,个人觉得还...

  • redis 常用命令

    记录一下redis 使用的命令,redis练习命令官网[http://try.redis.io/] 启动停止命令 ...

  • redis-port 使用的两个例子

    在上一篇《7月,redis迷情》提到平时运维中,重度使用 redis-port,下面和大家分享下使用场景和心得。r...

  • Redis学习记录(二)--使用Jedis连接

    Redis学习记录(二)--使用Jedis连接 标签(空格分隔): javaWEB 在Java环境中连接Redis...

  • Redis心得

    这里总结一下我使用Redis的一些心得,主要是参考了Redis设计与实现 和 Redis开发与运维 这两本书。 因...

  • redis使用

    记录使用redis中遇到得问题:1、程序将调用流程得functionId保存在redis中,redis中可能会保存...

  • SparkStreaming之使用redis保存Kafka的Of

    本文主要记录使用SparkStreaming从Kafka里读取数据,并使用Redis保存Offset。 相关文章:...

  • 在centos中安装redis

    记录一下在centos系统下使用源码安装redis的流程 1.配置c++环境 2.使用wget下载redis源码 ...

网友评论

      本文标题:Redis使用心得记录

      本文链接:https://www.haomeiwen.com/subject/guqwgftx.html