redis
redis(Remote Dictionary Server)--结构化数据库
-
nosql
- nosql = not only sql
- 泛指非关系型数据库,
- 特点
- 方便扩展(数据之间没有关系,很好扩展)
- 大数据高性能(一秒读11万,写8万。nosql的缓存级别是细粒级的缓存,性能比较高)
- 数据类型是多样性的(不需要事先设计数据库。随取随用。)
- 传统RDBMS和NoSQL
- 传统的RDBMS
- 结构化组织
- sql
- 数据和关系都存在单独的表中
- 严格的一致性
- 基础的事务
- NoSQL
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库
- 保证最终一致性
- CAP定理和BASE (异地多活)
- 高性能,高可用,高可扩展性
- 传统的RDBMS
- 大数据时代的3V+3高
- 海量Volume
- 多样Variety
- 实时Velocity
- 高并发
- 高可扩
- 高性能
-
nosql的四大分类
- kv键值对:redis、redis+memecache
- 文档型数据库:mongoDB(主要处理大量的文档,,是nosql中功能最丰富,最像关系型数据库的)
- 列存储数据库
- 图关系数据库(不是存图片的,是存储关系的,比如朋友圈社交网络)
-
redis能干吗?
- 内存存储、持久化、内存中是断电既失,所以持久化很重要
- 效率高,可用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器
- ...
- 特性
- 多样的数据类型
- 持久化
- 集群
- 事务
- ...
-
windos安装使用Redis

-
Linux 安装使用redis
- 解压缩保存安装包到/opt
- 安装环境 yum install gcc-c++
- 执行 make
- 执行 make install
- 进入 /usr/local/bin
- 创建lixconfig mkdir lixconfig,拷贝一份配置文件 cp /opt/redis.6.2.5/redis.conf lixconfig
- vim redis.conf
- 修改daemonize no 为 daemonize yes
- 启动 redis-server lixconfig/redis.conf
- 测试连接:redis-cli -h 主机号 -p 6379
- ping
- 小功告成
- 压力测试
- redis-benchmark -h localhost -p 6379 -c 100 -n 10000
- redis 是基于内存的单线程操作。
-
常用命令
-
set:set name lix 设置一个key,value
-
get:get name 获取key为name的value(lix)
-
strlen :字符串的长度
-
select 3:进入第四个数据库(默认有17个数据库【select 16】)
-
flushdb:清空当前数据库的所有数据
-
flushall:清空所有数据库的所有数据
-
move key 1:移动当前key到1数据库中
-
expire key second: 设置超时时间,超时后清除key,value
-
setrange:设置指定位置开始的字符串
-
getrange:获取指定位置的字符串(getrange name 0 -1)
-
keys *:查看所有的key
-
type key:查看当前key 的类型
-
exists key :判断当前key是否存在,存在则返回1
-
incr :自增1
-
decr:自减1
-
incrby 100:增加100步长(自增100次1)
-
setex(set expire ):设置超时时间
-
setnx(set if not exists):如果存在,返回0设置失败,如果不存在,返回1设置成功
-
mset:设置多个key 的值
-
mget:获取多个key的值
-
mset: user:1:name lix user:1:age 22 设置对象user的值
-
getset key value:先获取key中的value,再设置value的值
-
append key value: 再key的值后追加value 字符串,如果key不存在,就相当于set key value
-
-
list(先进后出)
- lpush list one:给list列插入one到尾部
- rpush list two:给list列插入two到头部
- lrange list 0 -1:查看
- lpop:移除最尾部的一个元素
- rpop:移除头
- lindex:获取指定下标的值
- llen list:返回list列的长度
- lrem list 2 one:移除两个one
- ltrim list 1 2:截取1-2 的value,其余的被删除
- rpoplpush list1 list2:移除尾部元素并移动到新创建的list2中
- lset list index value:指定位置的值替换为新值
- linsert:插入
-
set(无序不重复集合)
- sadd myset "hello":添加
- smembers myset :查看
- sismember myset hello:检查是否存在
- scard myset :获取set集合中的元素个数
- srem myset hello:移除指定的元素
- srandmember myset:随机抽
- srandmember myset 2:随机抽指定个数的元素
- spop myset:随机删除元素
- smove myset myset2 lix:移动指定的元素
本文来自博客园,作者:六爻呈乾,转载请注明原文链接:https://www.cnblogs.com/ilycq/p/15238481.html

浙公网安备 33010602011771号