August Rush

一个还在努力成长的小火汁!

游龙当归海,海不迎我自来也。

We create our own demons.

You can reach me at augustrush0923@gmail.com
入坑Redis
发布:2020年10月16日 | 作者:augustrush | 阅读量: 301

Redis各个平台的安装方法自行百度,Google。


启动Redis


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)


key 操作


# 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


String类型


  • 字符串类型是Redis中最为基础的数据存储类型。它在Redis中是二进制,这便意味着该类型可以接受任何格式的数据。如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的value最多可以容纳的数据长度是512M



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类型


  • 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的值
hset 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


list类型


  • 列表的元素类型为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结束的两个数据


set类型


  • 无序集合

  • 元素为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


zset类型


  • 有序集合

  • 元素为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构建

版权所有 © 2020-2021 August Rush

京ICP备20007446号-1 & 豫公网安备 41100202000460号

网站地图 & RSS | Feed