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\redis 运行: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

posted on 2020-10-30 10:49  灬菜鸟灬  阅读(173)  评论(0编辑  收藏  举报

导航