redis数据库

redis学习笔记

  • 安装

linux:
sudo apt-get install redis-server  
  • 配置文件

配置文件目录:
/etc/redis/redis.conf
  • 核心配置选项

绑定Ip:
bind 127.0.0.1
port:
port 6379

是否以守护进程运
如果以守护进程运,则不会在命令行阻塞,类似于服务
如果以守护进程运,则当前终端被阻塞
设置为yes表示守护进程,设置为no表示非守护进程
推荐设置为yes

daemonize yes

数据文件件
dbfilename dump.rdb

数据文件存储路径
dir /var/lib/redis

日志文件
logfile /var/log/redis/redis-server.log

数据库,默认有16个
database 16

主从复制,类似于双机备份。
slaveof

  • 服务器端

查看帮助文档
redis-server --help

sudo service redis stop
关闭redis服务

sudo service redis start
启动redis服务

sudo service redis restart
  • 客户端

查看帮助文档:
redis-cli --help

连接redis(进入redis):
redis-cli

测试redis连接:
ping
如果回复pong表示连接成功

切换数据库
数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select n

清空当前数据库
flushdb

清空所有数据库
flushall

  • 键命令

1.keys
查找键
格式:keys pattern
pattern支持正则表达式
如:
keys *          #查看所有键
keys 'a*'       #查看以a开头的键

2.exists
判断键是否遵从
格式:exists key
如:
exists name     #判断name键是否存在

3.type
查看键对应的value的类型
格式:type key
如:
type name

4.del
删除键及其对应的值
格式:del key1 key2 ...
如
del name age

5.expire
设置键值的过期时间,以秒为单位
格式:expire key seconds
如:
expire name 3   设置键name的过期时间为3秒

6.ttl
查看键值的有效时间,以秒为单位。如果没有设置过期时间,返回-1,如果键已经过期,返回-2
格式:ttl key
如:
ttl name

string类型数据操作

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

  • 增加数据

1.set
设置键值
格式:set key value

如:
set name python
设置键为name的值为python

2.setex
设置键值及过期时间,单位为秒
格式:setex key seconds value
如:
setex age 5 18
设置键age的值为18,并且此键值在5秒后失效

3.mset
设置多个键值对
格式:mset key1 value key2 value2 ...
如:
mset age 23 gender false

4.append
向键中追加数据。如果键不存在,则新建一个键
如:
append name 3
  • 获取数据

1.get
根据键获取值,如果键不存在则返回nil
如:
get name

2.mget
根据多个键获取多个值
如:
mget name age gender


hash类型数据操作

hash用于存储对象,对象的结构为属性、值。值的类型为string

  • 增加

1.hset
设置单个属性
格式:hset key field value
如:
hset user name python
设置键user的属性name为python

2.hmset
设置多个属性
格式:hmset key field1 value1 field2 value2 ...
如:
hmset user age 23 gender male
  • 获取

1.hkeys
获取指定键所有的属性
格式:hkeys key
如:
hkeys user

2.hget
获取单个属性的值
格式:hget key field
如:hget user name

3.hmget
获取多个属性的值
格式:hmget key field1 field2
如:
hmget user name gender

4.hvals
获取所有属性的值
格式:hvals key
如:
hvals user
  • 删除

1.hdel
删除整个hash键及值,使用del
删除属性,属性对应的值会被一起删除
hdel user gender
hdel user

list类型数据操作

列表的元素类型为string;按照插入的顺序排序

  • 增加

1.lpush
在左侧插入数据
格式:lpush key value1 value2 ...
如:
lpush alist a b c

2.rpush
在右侧插入数据
格式:rpush key value1 value2 ...
如:
rpush blist a b c

3.linsert
在指定元素前或后插入新元素,如果指定元素不存在,则插入失败
格式:linsert key before/after 现有元素 新元素
如:
linset alist before c m
  • 获取

1.lrange
返回列表中指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引页可以是负数,表示从尾部开始计数,-1表示最后一个元素
格式:lrange key start stop
如:
lrange alist 0 -1

2.llen
返回列表数据长度,如果键不存在返回0
格式:llen key
如:
llen slist
  • 修改

1.lset
设置指定索引位置的元素值
格式:lset key index value
如:
lset alist 2 m
  • 删除

1.lrem 
将列表中钱count次出现的值为value的元素移除
count>0:从头往尾移除
count<0:从尾往头移除
count=0:移除所有
格式:lrem key count value
如:
lrem alist 2 b

set类型数据操作

无序集合;元素为string类型;元素具有唯一性,不重复;集合没有修改操作

  • 增加

1.sadd
添加元素
格式:sadd key member1 member2 ...
如:
sadd names zhangsan lisi wangwu

  • 获取

1.smembers
返回所有的元素
格式:smembers key
如:
smembers names

2.scard
返回集合数据数量
格式:scard key
如:
scard names

  • 删除

1.srem
删除指定元素
格式:srem key member1 member2 ...
如:
srem names zhangsan

zset类型数据操作

有序集合;元素为string类型;元素具有唯一性,不重复;每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序;集合没有修改操作

  • 增加

1.zadd
格式:zadd key score1 member1 score2 member2 ...
如:
zass names 4 lisi 6 zhaoliu 3 zhangsan 5 wangwu


  • 获取

1.zrange
返回列表中指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引页可以是负数,表示从尾部开始计数,-1表示最后一个元素
withscores:返回结果是否带score
格式:zrange key start stop [withscores]
如:
zrange names 0 -1

2.zrangebyscore
返回score值在min和max之间的成员
格式:zrangebyscore key min max
如:
zrangebyscore names 3 5

3.zscore
返回成员member的score值,如果成员不存在返回nil
格式:zscore key member
如:
zsocre names wangwu

4.zcard
获取zset的数据长度
格式:zcard key
如:
zcard names

  • 删除

1.zrem
删除指定元素
格式:zrem key member1 member2 ...
如:
zrem names lisi zhaoliu

2.zremrangebyscore
删除权重在指定范围的元素
格式:zremrangebyscore key min max
如:
zremrangebyscore name 4 6



posted @ 2019-07-17 14:19  szhl  阅读(189)  评论(0编辑  收藏  举报