更新说明:对文章排版以及内容格式做了调整。
更新时间:2022-05-04

  1. NoSql = Not Only SQL
  2. Key - Value 存储:字符串 String|字符串列表 list|有序集合 sorted set|hash|字符串集合set
  3. 09年开发完成
  4. C语言开发
  5. 每秒能写8.1万次,能读11万次
  6. 应用场景:缓存、任务队列、网站访问统计、应用排行榜、数据过期处理,分布式集群里的session处理
  7. CentOs-6.5 安装:
    • 下载源码后,对源码进行编译,编译需要一个gcc环境。yum install gcc-c++
    • 将下载好的源码上传至服务器 /root下
    • tar -zxvf redis-x.x.x.tar.gz
    • cd redis-x.x.x
    • make
    • make PREFIX=/usr/local/redis install
    • cd /usr/local/redis/bin --存在一些可执行文件
    • cd ~/redis.x.x.x
    • cp redis.conf /usr/local/redis
    • cd /usr/local/redis/bin
    • 前端启动:redis-server(窗口不能关闭)
    • 后端启动:修改配置文件
    • vim redis.conf
    • 修改 daemonize yes
    • redis-server redis.conf
    • 验证启动:ps -ef | grep redis
    • 停止启动:kill -9 PID || redis-cli shutdown
    • 进入命令行交互:_redis-cli _
  8. Jedis:Jedis是Redis官方首先的Java客户端开发包
  9. Key不要过长–不建议超过1024
  10. 存储String:
    • 以二进制方式操作
    • 其value数据长度最多不超过512M
    • 赋值**_ set_、取值_ get_、删值 delincr num、incrby** num 5、append num 5
  11. 存储Hash:
  • String Key和String Value的map容器
  • 每一个Hash可以存储4294967268个键值对
  • 赋值**:hset** myhash username jack
  • 赋值:hset myhash age 18
  • _ hmset_ myhsh username roose age 21
  • 取值:hget myhash username ==> jack
  • _ hmget_ myhash username age
  • hgetall myhash
  • 删除一个:hdel myhash username
  • 删除全部:del myhash
  • 增加数字: hincrby myhash age 5
  • 判断属性中的某个值是否存在:hexists myhash username
  • 获取属性数量 : hlen myhash == 2
  • 获取所有属性名称:hkeys myhash
  • 获取所有值: hvals myhash
  1. 存储list:
  • ArrayList使用数组方式:
  • LinkedList使用双向链接方式:
  • 双向链表中增加数据
  • 双向链表中删除数据
  • 两端添加:
    • lpush mylist a b c --> c,b,a
    • lpush mylist 1 2 3 --> 3 2 1 c b a
    • rpush mylist2 a b c
    • rpush mylist2 1 2 3
  • 查看列表:
    • lrange mylist (start,end)
    • lrange mylist 0 5 --> 3 2 1 c b a
    • lrange mylist2 0 -2 a b c 1 2
  • 两端弹出:
    • lpop mylist2 --> 3
    • lrange mylish -->2 1 c b a
    • rpop mylist2 --> 3
    • lrange mylist2 --> a b c 1 2
  • 获取列表元素个数:
    • llen mylish -->返回元素个数
  • 扩展命令
    • lpushx mylist2 (mylist2这个值存在才会在头部插入)
    • lrem mylist2 2 3(从头开始删除2个3)
  1. 存储Set:不允许出现重复的元素
  • 添加元素
    • sadd myset a b c
    • sadd myset 1 2 3
  • 删除元素
    • srem myset 1 2
  • 获得集合中的元素
    • smembers myset --> c b a 3
  • 判断元素是否存在
    • sismember myset 3
  1. keys通用操作
  • **keys ***
  • keys my? :查看以my开头的key
  • del my1 my2 my3 :删除这些key
  • exists my1 :查看my1是否存在
  • rename old new :重命名
  • expire newkey 1000 :过期时间
  • type key:查看某个key的类型
  1. redis特性
  • 多数据库
    • 16个数据库 0-15 (客户端默认0)
    • select 1 — 选择1号数据库
    • move key 2 ---- 将1中的key移动到2
  • Redis事务
    • multi :开启事务
    • exec :提交事务
    • discard:回滚操作
  1. redis的持久化概述
  • RDB持久化:默认支持不需要配置:在指定时间间隔内,将数据写入到磁盘
    • redis.conf: save 900 /save 300 10 /save 60 10000 (默认支持)–可以查看保存的路径在 dump.rdb
  • AOF持久化
    • 优势:更高的数据安全–每一次变动都会记录到磁盘中。
    • 劣势:内容文件大、效率低
    • 需要进行相应配置–redi.conf ==>appendonly yes -->写入到appendonly.aof
  • 无持久化
  • 同时使用RDB和AOF
  1. 服务器查看redis路径
  • ps -ef | grep redis
  • whereis redis
  1. 查看本地是否安装redis:brew info redis
  2. 批量删除某个规则的 redisKey:
  3. [root@node1 src]# ./redis-cli -h 127.0.0.1 -p 6379 keys “java_suisui*” | xargs ./redis-cli -h 127.0.0.1 -p 6379 del