虚拟环境
什么是虚拟环境:
一个隔离了外界干扰的,独立的环境
Redis
redis的安装:
第一种方法:
1.首先在官网上下载redis最新的版本,命令如下:
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
2.解压下载的redis压缩包
tar -vxzf redis-4.0.8.tar.gz
3.进入src目录并make
cd redis-4.0.8
cd src
make
4.编译完成后可以使用如下命令进行测试
make test
注:如果make过程中出现了如下错误:
error: jemalloc/jemalloc.h: No such file or directory
就执行make MALLOC=libc 就OK了,不过在执行这一句之前最好先执行
make clean清理一下。
启动方法 在src目录下 ./redis-server
查看 redis 是否启动?
./redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping
PONG
第二种方法:
sudo apt-get update
sudo apt-get install redis-server
启动 Redis
redis-server
查看 redis 是否启动?
redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。
redis 127.0.0.1:6379> ping
PONG
有时候会有中文乱码 连接的时候需要 redis-cli --raw
密码管理:设置密码后,不适用密码也能登录,但是没有权限做操作
- 单次有效:通过命令设置
- 获取配置:`config get requirepass`获取密码配置,`config get *`获取所有配置
- 设置密码:`config set requirconfig epass 123456`
- 身份认证:`auth 123456`
- 永久有效:修改配置文件`安装目录/redis.windows-service.conf`
- 将`requirepass xxx`的行取消注释(去掉前面的#)
- 后面跟上你要设置的密码
- 重启服务后即可生效
- 远程连接:修改配置文件中的`bind 127.0.0.1`为`bind 0.0.0.0/本机IP`
- 图形界面:`redis-desktop-manager-0.8.8.384.exe`
- 一路next即可完成安装,添加连接即可查看对应的数据。
Redis简介
- Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- 非关系型数据库的一种,经常用作缓存数据库服务器。
- 官网:http://www.redis.io/ 中文网:http://www.redis.cn/
- 具有丰富的数据类型:字符串、哈希、列表、集合、有序集合
- 端口:6379
redis的特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份
性能极高 支持每秒读的次数为110000次/s,写的速度是81000次/s
redis常用命令
- 常用管理命令:
ping:测试连接情况,默认恢复'PONG'
quit/exit:退出客户端
auth:密码认证
config:配置命令,可以查看和设置配置信息,参考密码查看与设置
info:查看服务器信息,可以指定具体模块查看
command:查看支持的命令
select:选择库,总共16个,默认为0数据库;提示符后会有库号的提示,没有就是默认的库(0)
flushdb:清空当前库
flushall:清空所有库
save:前台执行持久化存储
bgsave:后台执行持久化存储
- 键(keys):
exists:判断指定的键是否存在
del:删除指定的键值对
keys:查看指定样式的键,keys *表示查看所有
ttl:查看指定键的剩余有效时间,单位为秒,不存在键返回-2,永久返回-1
expire:设置指定键的生存时间
persist:移除指定键的生存时间,之后该键永久有效
move:移动指定的键到指定的库
rename:修改指定键的名字
- 字符串(string)
set:设置,存在就修改,不存在就添加
get:获取,获取指定键的值
mset:同时设置多个键值对
mget:同时获取多个键对应的值
getset:设置新值,同时返回旧值
setex:设置值及过期时间,单位为秒
incr:数字值加1
decr:数字值减1
incrby:数字值加上指定值
decrby:数字值减去指定值
incrbyfloat:数字值加上一个浮点数
append:键存在,值为字符串,追加指定的内容到原值的末尾
strlen:返回键对应值的字符长度
哈希(hash)
hset:设置单个属性
hget:获取单个属性
hmset:设置多个属性
hmget:获取多个属性
hgetall:获取所有属性
hexists:判断指定键是否有指定的字段
hdel:删除指定键的指定字段
hkeys:获取指定键的所有字段
hvals:获取指定键的所有字段值
hlen:获取指定键的字段个数
hincrby:在指定键的指定字段上增加一个整数
hincrbyfloat:在指定键的指定字段上增加一个浮点数
- 列表(list)
lpush:从左边(头部)插入数据
lpop:从左边(头部)删除并返回数据
lrange:获取区间内的数据,0 -1通常可以表示所有范围
lindex:根据索引获取元素
llen:统计列表中元素个数
lset:设置指定索引的元素值
lrem:删除指定数量的元素
linsert:在指定元素的前/后插入元素
ltrim:修剪列表元素(保留指定范围内地,删除其他)
rpop:从右边(尾部)删除并返回数据
rpush:从右边(尾部)插入数据
- 集合
sadd: 向集合中添加一个元素
scard: 获取集合中的成员数
smembers:返回集合中的所有成员
spop:移除并返回集合中的一个随机元素
redis的发布订阅:
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
关联订阅频道名称
subscribe name
通过publish name去往频道名字里面推送信息
然后客户端就能收到此订阅信息