zoukankan      html  css  js  c++  java
  • redis操作及命令

    一、redis使用场景:

    1、登录会话存储,存储在redis中,与memcached相比,数据不会丢失。

    2、排行版/计数器:比如一些秀场类的项目,经常会有一些前多少名的主播排名。还有一些文章阅读量的技术,或者新浪微博的点赞数等。

    3、作为消息队列:比如celery就是使用redis作为中间人。

    4、当前在线人数:还是之前的秀场例子,会显示当前系统有多少在线人数。

    5、一些常用的数据缓存:比如我们的Bs论坛,板块不会经常变化的,但是每次访问首页都要从mysal中获取,可以在redis 中媛存起来,不用每次请求数据库。

    6、把前200篇文章缓存或者评论缓存:一般用户浏览网站,只会浏览前面一部分文章或者评论,那么可以把前面200篇文章和对应的评论缓存起来。用户访问超过的,就访问数据库,并且以后文章超过200篇,则把之前的文章删除。

    7、好友关系:微博的好友关系使用redis实现。

    8、发布和订阅功能:可以用来做聊天软件。

    二、redis安装

    2.1windows:

    1、下载地址https://github.com/tporadowski/redis/releases

    2、打开一个 cmd 窗口 使用 cd 命令切换目录到 x:xxxx edis 运行:redis-server.exe redis.windows.conf

    3、这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。切换到 redis 目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379

    2.2 linux:

    下载并安装 

    安装依赖包:# yum -y install ruby rubygems

      # yum -y install gcc automake autoconf libtool make

      # wget http://download.redis.io/releases/redis-6.0.8.tar.gz

      # tar xzf redis-6.0.8.tar.gz

      # cd redis-6.0.8

      # make

      # cd src

      # make install

    启动 redis 服务:

      # cd src

      # ./redis-server &

    结束redis服务:

      # redis-cli shutdown

    连接redis

      # redis-cli -127.0.0.1 -6379  

      在配置文件中‘bind’指定当前的机器的ip

      # redis-cli -192.168.1.12 -6379 

    三、redis基本命令

     1、redis对字符串操作

      添加:set username "deng"

      获取:get username

      删除:del username

      设置过期时间:set username "deng" EX 10 或者 expire username 10

      查看剩余过期时间:ttl username

      查看所有的键值对:keys *

      删除所有的键值对:flushall

    2、redis对列表操作

      左边添加元素:lpush username "deng"

      右边添加元素:rpush username "cheng"

      左边删除元素:lpop username 

      右边删除元素:rpop username

      删除指定某元素个数(-1表示删除表尾的,0代表删除所有的):lrem username 1 "deng"

      查看元素值(所有):lrange username 0 -1

      返回位置所在元素:lindex username 0

      返回所有列表元素个数:llen username

    3、redis对集合操作(无序,唯一)

      添加元素:sadd username deng

      查看元素:smembeers username

      移除元素:srem username deng

      查看集合元素个数:scard username

      交集:sinter username username1

      并集:sunion username username1

      差集:sdiff username username1

    4、redis对hash操作

      添加新值:hset  person username deng 或者 hmset  person username deng age 25(同时添加多个)

      获取值:hget  person username

      删除值:hdel  person username

      获取所有键对值:hgetall person

      获取所有的key:hkeys person

      获取所有的键值:hvals person

      判断某键是否存在:hexists person age

      获取键值对个数:hlen person

    5、redis对事务操作

      隔离操作:事务中的所有命令都会序列化,按顺序进行,不会被其他命令打扰

      原子操作:事务中的命令要么全部执行,要么全部不执行。

      开启一个事务:multi

      执行事务:exec

      取消事务:discard

      监视某个值:watch key

      取消监控值:unwatch

      在给python操作的时候需要添加管道 

    6、redis发布和订阅

      订阅频道:subscribe video video1

      给频道发布start消息:publish video start

    7、redis RDB和AOF持久化数据备份

      RDB:默认开启,关闭只需把配置文件中的save都注释掉;

        存储路径为配置文件中的dbfilename来指定路径和文件名;

        同步机制:配置文件在save中配置几秒同步一次

        存储内容:具体的值

        优点:存储文件小、恢复速度快、适合备份

        缺点:丢失数据多、数据量比较大的时候,比较耗时

      AOF:在配置文件中appendonly yes即开启,no为关闭;

        存储路径为配置文件中的dbfilename来指定路径和文件名;

        同步机制:有命令就同步、每秒同步、30秒同步

        存储内容:存储的是操作命令

        优点:丢失的数据少、保留最小的命令集合

        缺点:没有压缩体积大、每次操作都同步效率有点慢、恢复的时候慢

    8、redis设置密码

      在配置文件中将‘requirepass password’取消注释并添加密码

      或者:# redis-cli -h 127.0.0.1 -p 6379 

         # config get requirepass  # 获取当前密码

         # config set requirepass 123456  # 设置当前密码

      登录的时候添加 -a 参数登录 redis-cli -h 127.0.0.1 -p 6379 -a xxxx

  • 相关阅读:
    每日英语:A Whiff Of 'Welcome Home'
    每日英语:What To Expect To Wear When You're Expecting
    每日英语:Success Outside the Dress Code
    每日英语:Mistrust Between U.S., Malaysia Strains Probe
    每日英语:A New Way to Learn Chinese
    真香,撸一个SpringBoot在线代码修改器
    SpringBoot代码生成器,从此不用手撸代码
    推荐一个能够让程序猿快速开发的极简工具箱
    臭名昭著的手机验证码功能是如何实现的
    SpringBoot 2.x 开发案例之前后端分离鉴权
  • 原文地址:https://www.cnblogs.com/wu-wu/p/13849682.html
Copyright © 2011-2022 走看看