Redis
中文文档: http://www.redis.cn/commands.html
命令参考: http://doc.redisfans.com/
Redis是高性能key-value数据库,
Redis是一个开源的内存数据库,可以用作数据库、缓存和消息中间件,支持多种类型的数据类型,如字符串,哈希,列表集合有序集合等
- 常用命令
/etc/init.d/redis-server stop --> redis停止
/etc/init.d/redis-server start --> 启动
/etc/init.d/redis-server restart --> 重启
redis-cli -h <hostname> -p <port> --> 远程连接redis数据库
redis中:
0. select 1 --> 切换到db1,默认在db0
1. key * --> 查看所有的redis键
2. type "键" --> 查看键的数据类型
3. flushdb --> 清空当前db
4. flushall --> 清空所有db
文章目录
redis 安装
官网地址:https://redis.io
$ wget https://download.redis.io/releases/redis-6.0.9.tar.gz
$ tar xzf redis-6.0.9.tar.gz
$ cd redis-6.0.9
$ make
# 下面这条很重要,不执行在运行指定conf,如:redis-server ./redis.conf时会报错
$ cd src && make install
redis 运行
- 编译好后的redis在src目录下,进入src目录后运行redis-cli
$ cd src
$ redis-cli
- 查看redis-server运行环境,如果版本不对,需要修改系统环境变量,/usr/bin和/usr/loal/bin下版本不一致
redis-server -v
- 打开 /etc/profile文件,在最后一行添加
export PATH=$PATH:/your redis path #将当前安装目录追加到系统环境变量 /usr/local/bin
$source /etc/profile #马上生效修改结果
服务器端
-
服务端命令为redis-server
-
查看帮助文档
redis-server --help
-
推荐使用服务的方式管理redis服务
-
启动
sudo redis-server start
-
停止
sudo redis-server stop
-
重启
sudo redis-server restart
-
-
个人习惯
-
查看redis服务进程
ps -ef|grep redis
-
杀死redis服务器
sudo kill -9 pid
-
指定加载的配置文件
sudo redis-server /etc/redis/redis.conf
-
客户端
-
客户端的命令为redis-cli
-
指定ip,port和password
redis-cli -h yourhost -p yourport -a yourpass
-
查看帮助文档
redis-cli --help
-
连接redis
redis-cli
-
运行测试命令
ping
-
切换数据库
redis中数据库没有名字,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n
-
redis存储和读取值操作
$ set foo bar
OK
$ get foo
"bar"
Reddis常用配置
- ip绑定,可同时绑定多个ip
bind 127.0.0.1
bind 127.0.0.1 10.10.10.1 - 端口绑定
6379
- 是否以守护进程运行
daemonize yes
- 数据文件
dbfilename dump.rdb
- 数据文件存储路径
dir ./
- 日志文件存储路径
logfile /var/log/redis/redis-server.log
- 数据库,默认有16个
databases 16
- 密码设置
- 临时密码,重启后需要重新配置
config set requirepass yourpass
- 在redis.conf中添加配置密码
requirepass yourpass
- 授权密码
auth yourpass $./redis-cli -p 端口号 -a yourpass
Redis 数据结构
- redis是key-value的数据结构,每条数据都是一个键值对
- 键的类型是字符串
- 值的类型分为五种
- 字符串 string
- 哈希 hash
- 列表 list
- 集合 set
- 有序集合 zset
string类型
二进制安全,可以保存图片数据和json格式,数据最大长度是512M
保存
- 设备键值
set key value
- 设置键值及过期时间,以秒为单位
setex key seconds value
- 设置多个键值
mset key1 value1 key2 value2
- 追加值
append key value
获取
- 获取值,如不存在返回nil
get key
- 获取多个键值
mget key1 key2
删除
键命令
- 查找键,支持正则表达式
keys pattern
- 查找所有键
keys *
- 判断键是否存在,存在返回-1,不存在返回0
exists key
- 查看键值对应的类型
type key
-
删除键及对应的值
del key1 key2 key3
- 设置过期时间,以秒为单位
expire key seconds
- 查看键的有效时间
ttl key
hash类型
- hash用于存储对象,对象的结构为属性、值
- 值的类型为string
增加、修改
- 设置单个属性值
hset key field value
- 同时设置多个属性
hmset key field1 value1 field2 value2
获取
- 获取指定键的所有属性
hkeys key
- 获取一个属性的值
hget key field
- 获取多个属性的值
hmget key field1 field2
- 获取所有属性的值
hvals key
删除
- 删除整个hash键及值,使用del命令
- 删除属性,属性对应的值会被一起删除
hdel key field1 field2
列表类型
增加
- 左侧插入数据
lpush key value1 value1
- 右侧插入数据
rpush key value1 value2
获取
- 返回列表里指定范围内的元素
- start,stop为元素的下标索引
- 索引从左侧开始,第一个元素为0
- 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop
设置指定索引位置的元素值
lset key index value
删除
- 删除指定元素
- 将列表中前count次出现的值为value的元素移除
- count>0,从头往尾删除
- count<0,从尾往头删除
- count=0,移除所有
- 将列表中前count次出现的值为value的元素移除
lrem key count value
set类型
无序集合
元素为string类型
元素具有唯一性,不重复
集合没有修改操作
增加
- 增加元素
sadd key member1 member2
获取
- 返回指定key的所有元素
smembers key
删除
- 删除指定元素
srem key
zset类型
有序集合,sorted set
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
没有修改操作
增加
- 添加
zadd key score1 value1 score2 value2
获取
- 返回指定范围内的元素
- start,stop为元素的下标索引
- 索引从左侧开始,第一个元素为0
- 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop
- 返回score值在min和max之间的成员
zrangebyscore key min max
- 返回成员member的score值
zscore key member
删除
- 删除指定元素
zrem key member1 member2
- 删除指权重在指定范围的元素
zremrangebyscore key min max
Redis与Python
redis包安装
pip install redis
调用模块
- 引入模块
# 此模块提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供了不同方法,进行交互操作
from redis import *
- StrictRedis对象方法
sr = StrictRedis(host='localhost',port='6379',db=0)
可简写为:
sr = StrictRedis()
根据不同的类型,拥有不同的实例方法可以调用,与前面的redis命令对应,方法需要的参数与命令的参数一致
string
- set
- setex
- mset
- append
- get
- mget
- key
keys
list
- lpush
- rpush
- linsert
- lrange
- lset
- lrem
set
- sadd
- smembers
- srem
zset
- zadd
- zrange
- zrangebyscore
- zscore
- zrem
- zremrangebyscore