一、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 -h 127.0.0.1 -p 6379
在配置文件中‘bind’指定当前的机器的ip
# redis-cli -h 192.168.1.12 -p 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