Redis各个平台的安装方法自行百度,Google。
redis-server
redis-cli
redis-cli -h 127.0.0.1 -p 6379
# 运行测试命令
ping
# 切换数据库
# 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select 15
sudo vi /etc/redis/redis.conf
daemonize yes # 后台(守护进程)运行
pidfile /var/run/redis/redis-server/pid # Redis进程pid的文件存储路径
port 6379 # 配置Redis的端口号
bind 127.0.0.1 # 绑定IP,如果需要远程访问,可将此行注释,或绑定一个真实IP
logfile /var/log/redis/redis-server.log # 日志文件存储路径
databases 16 # Redis默认提供16个数据库
dbfilename dump.rdb # Redis数据库备份的地方(数据持久化) The filename where to dump the DB
slaveof # 主从复制,类似于双机备份
redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串
键不能重复
值的类型分为五种:
字符串(string)
哈希(hash)
列表(list)
集合(set)
有序集合(zset)
# del key 删除key
del name
# keys pattern 查看key
keys * # 查看所有key
keys a* # 查看所有以a开头的key
keys *a # 查看所有以a结尾的key
keys name
# exists key [key ...] 查看key是否存在
exists name age
# type key 查看key的value的数据类型
type name
# expire key seconds 设置key的过期时间
expire name 60
set name august
set age 22
del name
del age
set name "August Rush"
set age 18
get name
get age
一些别的操作方式
# setex key seconds value 设置key的有效期
setex captcha 60 h4x8n
# ttl key 查看对应key的有效期
ttl captcha
# mset key value [key value ...] 一次设置多个key-value
mset address beijing job_name python salary 20k
# mget key [key ...] 一次获取多个key的值
mget address job_name salary
# append key value 向key中追加value
append name lalala
hash用于存储对象,对象的结构为属性·值
值的类型为string
# hset key field value [field value ...] 设置key的field的值
hset Person name alex
hset Person age 22 gender male
# hmset key field value [field value ...] 设置key的field的值
hmset Person name alex age 22 gender male
# hdel key field [field ...] 删除key中的对应field
hdel Person name age gender
# 注意 如果使用del key 删除。则删除整个key。
hset Person name alex age 22 address beijing
hset Person name august address shanghai
# hget key field 查询key的field的值
hget Person name
hget Person age
hget Person gender
# hmget key field[field ...] 查询key的多个field的值
hmget Person name age gender
# hgetall key 获取hash key 所有的值
hgetall Person
# hkeys key 查询key中所有的field
hkeys Person
# hvals key 查询key中所有的value
hvals Person
列表的元素类型为string
按照插入顺序排序
# lpush key element [element ...] 从左边往里添加
lpush class_9 zhangsan3
lpush class_9 lisi4
lpush class_9 wangwu5
# rpush key element [element ...] 从右边往里添加
rpush class_9 1111
rpush class_9 2222
# linsert key BEFORE|AFTER pivot element
linsert class_9 before lisi4 abc
linsert class_9 after lisi4 def
# lrem key count element 删除指定key从左开始共count的element
# count=0 表示和element值相等的元素都删除
# count>0 表示从表头开始删除count个和value相等的元素
# count<0 表示从表尾开始删除count个和value相等的元素
lrem class_9 0 1111
lrem class_9 1 2222
lrem class_9 -1 3333
# lset key index element
lset class_9 0 alex
# lrange key start stop 从start到stop查询key
lrange class_9 0 -1 # 获取class_9所有的element
lrange class_9 0 0 # 获取class_9从0开始到0结束的一个数据
lrange class_9 0 1 # 获取class_9从0开始到1结束的两个数据
无序集合
元素为string类型
元素具有唯一性,不重复
对于集合没有修改操作
# sadd key member [member ...] 增加指定key的members
sadd students august alex grecia
# srem key member [member ...]
srem students august alex
# smembers key 查询指定key的成员
smembers students
有序集合
元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
没有修改操作
# zadd key score1 member1 [score2 member2 ...]
zadd Grades 100 august 90 hanmeimei 50 lilei 10 grecia
# zrem key member [member ...] 删除指定元素
zrem Grades grecia
# zremrangebyscore key min max 按照权重范围删除元素
zremrangebyscore Grades 0 60
# zrange key start stop
zrange Grades 0 -1
# zscore key member 获取指定key的指定member的score
zscore Grades august
# zrangebyscore key min max 获取指定key的[min, max]范围内的member
zrangebyscore Grades 0, 60
基于Nginx+Supervisord+uWSGI+Django1.11.1+Python3.6.5构建