Redis数据库
1.认识Redis
- NoSQL(not only sql):一类新出现的数据库,特点:
1)不支持SQL语法
2)存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是Key Value形式
3)NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
4)NoSQL中的产品种类相当多:Mongodb Redis Hbase hadoop Cassandra hadoop
- Redis特性
1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3)Redis支持数据的备份,即master-slave模式的数据备份。
- Redis安装
sudo apt-get update
sudo apt-get install redis-sever
- Redis服务端和客户端命令
服务器端
命令:redis-server
帮助文档:redis -sever -help
启动:sudo service redis start
停止:sudo service redis stop
重启:sudo service redis restart
客户端
连接redis:redis -cli
帮助文档:redis -cli -help
数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库 select n
(此为服务端的登陆情况,一般服务端只用于查看,不进行操作,在客户端才进行操作,ctrl+z退出)
(客户端如图即进入成功。默认为0号数据库,select 6 使用6号数据库)
2.常用数据类型和命令
- 数据结构
redis是key-value的数据结构,每条数据都是一个键值对
键的类型是字符串,键不能重复
值得类型分五种:string 字符型 hash 哈希 list 列表 set 集合 zset 有序集合
- string类型
set key value 设置key的值为value
get key 获取key的值
append key value 追加
set key value ex seconds 创建的时候指定过期时间
expire key seconds 设置过期时间
ttl key 查看生存时间(-1则表示永久存在,-2表示不存在)
persist key 删除过期时间(有过期时间才能删除,否则删除失败返回0,0个成功)
keys * 查看所有key
del key 删除
exists key 查看key是否存在
rename key newkey 重命名
type key 查看key类型
- List 类型
lpush key value[ value2 value3 ...] 左添加(可添加多个),返回元素个数
rpush key value 右添加
lindex key index 查看下标为index的值
lrange key start stop 查看[start, stop]的值
llen key 查看元素个数
lset key index value 修改
lpop key 删除左边第一个
rpop key 删除右边第一个
lrem key count value 删除count个value
- Hash 类型
例:user {name : sakura} 犹如字典的映射表
key field value
hset key field value 设置一个
hmset key field1 value1 field2 value2 … 设置多个
hget key field 获取key的field值
hmget key field1 field2 获取多个
hvals key 获取全部values
hkeys key 获取全部field
hgetall key 获取所有field和value
hlen key 查看有几个键值对
- Set 类型
无序字符集合,添加相同元素只保留其一
sadd key member1 [member2 member3] 增加
scard key 返回长度
smembers key 查看所有元素
srem key member1 [member2 member3] 指定删除
spop key 随即删除
sismember key member 判断集合中是否存在该值
- Sorted Set 类型
每一个成员都会有一个分数(score)与之关联。
成员是唯一的,但是分数(score)却是可以重复的
zadd key score1 member1 [score2 member2] 设置
zcount key min max 返回score值在区间的元素个数
zcard key 返回zset元素个数
zscore KEY MEMBER 查看score值
zrange key start stop 按照索引返回区间成员
zrangebyscore key min max 按照score值返回区间成员
zrem key member [member …] 删除
3.Redis 配置
在Ubuntu系统中默认配置文件地址: /etc/redis/redis.conf
port 6379 # 默认端口
logfile /var/log/redis.log # 日志文件位置
dbfilename dump.rdb # RDB持久化数据文件(文件内容定期保存到本地数据库)
dir /var/lib/redis #本地数据库存放目录
bind 127.0.0.1 # 指定IP进行监听
requirepass yourpassword #密码 设置密码后连接redis需要:redis-cli -a yourpassword
Save 900 1 #持久化(过900s保存一下)
使用vim打开配置文件
会发现是个空的,因为没有权限,需要提权限才能查看其中的内容,:q!退出
sudo vim redis.conf 输入密码就可以了