nosql
- 泛指非关系型数据库
- 不支持sql语法
- 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是kv形式
- nosql的世家中没有一种通用的语言,每种nosql数据库都有自己api和语法,以及擅长的业务场景
- Nosql中的产品非常多:
- Redis
- Mongobd
- Hbase Hadoop
- Cassandra hadoop
NoSQL和SQL数据库的比较
- 适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
- 事务特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
- 两者在不断取长补短,呈现融合趋势
Redis的特性:
- Redis与其他key-value缓存产品有一下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份
Redis应用场景
- 用来做缓存-redis的所有数据是放在内存中的(内存数据库)
- 可以在某些特定应用场景下代替传统数据库-比如社交类的应用
- 在一些大型系统中,巧妙地实现一些特定的功能:session共享,购物车
- 只要你有丰富的想象力,redis可以用在可以给你无限的惊喜
Redis 优势
-
性能极高-Redis能读的速度是110000次/s,写的速度是81000次/s
-
丰富的数据类型-Redis支持二进制案例的Strings,LIsts,Sets及Ordered Sets 数据类型操作
-
原子-Redis的所有操作都是原子性的
-
丰富的特性 -Redis还支持publish/subscribe, 通知,key过期等等特性
启动Redis数据库服务链接Redis服务
实例 | 说明 |
---|---|
Redis-server.exe redis.windows.conf | 启动redis服务 |
Redis-cli | 链接redis数据库 |
redis:端口号6379
linux查看redis的进程 ps aux | grep redis
sudo kill -9 pid 杀死redis服务器
sudo redis-server /etc/redis/redis.conf 指定加载的配置文件
select 切换redis 的库
注意:键值不可相同否则会更新value的值
值的分类:
字符串 string
增加和更改
- 设置多个 mset
- 设置键值:set key value
查
- 查看多个 mget
- 查看一个get key
删除:
del key
- 哈希 hash
设置和更改 hset string key value
查看 hget string key
设置多个 hmset
查看多个 hmget
获取所有的hash值 hgetall string
获取所有的值 hkeys string
获取所有的值 hvals string
删除hash里面的值 hdel string key
删除hash所有值 del key - 列表 list
左插入数据: lpush key value
查看元素:lrange key start stop
移除:lrem key count value- count>1 从左往右删除 删除count个和value的元素
- count<1 从右往左删除 删除count个和value相等的元素
- count=0 直接删除
更新值操作 :lset key acount value
插入数值:linsert key before | after pivot value
- 集合 set
增加操作: sadd key member1 member2
查看:smembers key
删除: srem key - 有序集合zset
添加 zadd key score value
查看 zrange key 0 -1
删除 zrem key value
zremrangebyscore key min max
key操作
查看所有的key:keys *
判断键是否存在: exists key 存在1 不存在0
查看类型 type key
时间设置 expire key second
注意:
设置有效时间:setex key 时间/秒 value
查看有效期:ttl key
追加:append key