1.概念
NOSQL
- 非关系型数据库
- 没有表结构
- 高性能
Redis
- 高性能
- 键值对形式存储
- 数据存储在内存
2.服务端和客户端
服务端:
1.启动
redis-server
2.关闭
- Ctrl+c
- ps -aux | grep ‘redis’
kill 进程号
客户端
(连接服务端成功后,打开另一个终端连接客户端)
1.redis-cli
2. redis-cli --raw 解决中文乱码问题
测试是否连接成功
心跳测试 ping
redis切换
数据库没有名称默认16个,通过0-15来标识
切换数据库 0-15
select 1
select 15
3.key-value
-
键值对存储数据
键:相当于数据的名称
值:相当于存储的数据 -
键特点:
键不能重复
数据类型是字符串 -
Redis 常见5种数据类型
- String
- 哈希 hash
- 链表List
- 无序集合set
- 有序集合zset
4.string
介绍:
- 最基本的数据类型
- 存储任何的数据
string语法介绍
增加和修改
– 增加一个值
set key value
例:
set name1 悟空
– 增加多个值
mset key1 value1 key2 value2
获取
get key
–修改
set key value (已存在的键值)
– 设置键值对过期时间
setex key 秒 value
在多少秒后过期,键值对不存在
练习:设置10秒键值对
setex name5 10 hehe
get name5
—追加
append key
练习:
孙悟空 增加 齐天大圣
set name5 孙悟空
append name5 齐天大圣
string获取
- 获取一个键值对的值
get key
例:
get name1
获取多个键值对得值
mget key1 key2
例:
mget add1 add2 add3
5.键命令
–键的查看
1.通过正则表达式 差看键
keys 正则表达式
– 查看所有键
keys *
–查看name开头大keys
keys name*
– 查看包含a的键
keys *a*
2.查看键是否存在
exists key1
–返回1代表存在,返回0代表不存在
exists key1 key2
– 返回结果的和
– 查看键–值得数据类型
type key
例:
type name1
– 删除键
del key
例:
del add1
del add2 add3
–2.设置有效时间
expire key 时间
例:
expire user 10
–3.查看过期时间剩余多少
ttl key
例:
ttl add1
-
=0 返回有效时间
- -2 键无效了, 不存在
- -1 键永久有效
6.hash
介绍: 键值对,值里面是键值对的集合,方便数据的处理
- 值里面的键值对,值只能是字符串,不能再放键值对
(值里面的键称为属性)
语法介绍:
- hash 增加键值
增加单个属性
hset key field value
–练习设置老大的属性
hset laoda name liubei
hset laoda yanse bai
–增加多个属性
hmset key field value1 field2 value2
例:设置老二属性
hmset laoer name guanyu yanse hong
–修改 对于存在的键值对再次设置
- –获取哈希 键值对的信息
– 1.获取所有的属性
hkeys key
例:获取老大的属性名
hkeys laoda
–2 获取所有的属性值
hvals key
例:获取老大的属性值
hvals laoda
–3获取所有的 一个属性的值
hget key field
例:获取老大的姓名
hget laoda name
–4. 获取所有的多个属性的值
hmget key field1 field2
例:获取老大的姓名颜色
hmget laoda name yanse
–5.获取所有的属性和值
hgetall key
例:-获取老大的所有信息
hgetall laoda
— 哈希删除
1.删除整个键
del key
2.删除键的属性
hdel key field1 field2
例:删除老二的姓名颜色
hdel laoer name yanse
7.list
介绍:
- 双向链表
- 按照顺序添加排序
- 数据类型是string
1. 增加
-- 从左侧插入
lpush key value1 value2 value3..
练习--从左侧插入1 2 3
lpush lo 1 2 3
--从右侧插入
rpush key value1 value2..
例: 从右侧插入4 5 6
rpush lo 4 5 6
结果是3 2 1 4 5 6
从指定位置前后插入元素
linsert key before/after 元素 新元素
例:1的前面插入111,后面插入222
linsert lo before 1 111
linsert lo after 1 222
获取的三种方式
正数从0开始 左侧开始 增加
负数从-1开始右侧开始减少
--从左侧获取正数
lrange keystart stop
例:获取前三个
lrange lo 0 2
-- 从右侧获取负数
例:获取后三个
lrange lo -3 -1
--获取全部
lrange lo 0 -1
-- 修改根据下标指定位置的元素进行修改
lset key 下标 值
--将第二个改为300
lset lo 1 300
--将倒数第二个改为500
lset lo -2 500
1.删除指定元素
语法:
lrem key count value
count>0 从头到尾
count<0从尾到头
count=0全部移除
例:删除前2 ho
lrem li 2 ho
--删除后2 h1
lrem li -2 h1
删除全部h1
lrem li 0 h1
8.set
介绍:
1.无序集合
2.元素的值是唯一的不能重复
3.没有修改操作
(1).增加
sadd key member1 member2..
例:葫芦添加大娃二娃
sadd hulu dawa erwa
(2).获取所有成员信息
smembers key
例:获取葫芦里所有成员信息
smembers hulu
(3).删除指定元素
srem key member1 member2
例:删除大娃和二娃
srem hulu dawa erwa
9.zset
介绍:
1.有序集合
2.存储内容STring.元素唯一不重复
3.没有修改操作
4.给每个元素分配分数
- 分数从小到大排序
- 可以相同 可以是负数
1.增加
zadd key scorel member1 score2
例:增加师徒四人
zadd xiyou 1 tangseng 3 bajie 2 sunwukong 4 shaseng
2.获取(顺序)
zrange key start stop
例:取前两个
zrange xiyou 0 1--前2
zrange xiyou 0 -1--全部
zrange xiyou -2 -1--后2
3.获取(分数范围)
zrangebyscore key min max
例获取1 3之间元素
zrangebyscore xiyou 1 3
4.获取元素的分数值
zscore key member
例:获取八戒的分数值
zscore xiyou bajie
1.删除指定元素(元素值)
zrem key member1 member2
例:删除沙僧
zrem xiyou shaseng
2.通过分数范围
删除元素
zremrangebyscore key min max
例:删除2-4分数间的元素
zremrangebyscore xiyou 2 4