什么是Redis

什么是NoSQL

介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL

属于非关系型数据库;Redis就属于非关系型数据库

传统的Mysql ,oracle ,sql server 等 都是关系型数据库

为什么需要NoSQL,主要应对以下问题,传统关系型数据库力不从心

  • High performance -高并发读写
  • Huge Storage-海量数据的高效率存储和访问
  • High Scalablility && High Availability 高可扩展性和高可用性

NoSQL的特点

易扩展

灵活的数据模型

大数据量,高性能

高可用

高性能键值对数据库,支持的键值数据类型

  • 字符串类型
  • 列表类型
  • 有序集合类型
  • 散列类型
  • 集合类型

Redis的应用场景

  • 缓存
  • 任务队列
  • 网站访问统计
  • 数据过期处理
  • 应用排行榜
  • 分布式集群架构中的session分离

安装Redis

第一步:安装gcc

gcc是用来编译c语言的,因为redis源码是c写的,所以需要gcc

yum install gcc-c++

第二步:wget方式,下载redis压缩包,并解压以及编译

下载:

wget http://download.redis.io/releases/redis-3.2.9.tar.gz

解压:

tar -zxvf redis-3.2.9.tar.gz

进入解压后的目录:

make

第三步:安装redis

make PREFIX=/usr/local/redis install

安装到/usr/local/redis

回到解压目录,

cp redis.conf /usr/local/redis/

第四步:启动和关闭redis服务

启动:redis里的redis-server命令

结束:Ctrl + C

或者:./bin/redis-cli shutdown

验证:ps -ef | grep -i redis

后台启动

编辑redis.conf文件



把no改成yes

使用指定配置文件启动:

 ./bin/redis-server ./redis.conf

Redis的基本使用

./bin/redis-cli,进入客户端

字符串类型

  • 存储:set key value
  • 获取:get key
    • 无值返回nil
  • 删除:del key

哈希类型 hash:

  • 存储:hset key field value
  • 获取:
    • 获取指定field:hget key field
    • 获取全部field:hgetall key
  • 删除:hdel key field

列表类型:可以添加一个元素到列表的头部或者尾部

  • 存储:

    • 将元素添加到列表左边:lpush key value1, value2, ......
    • 将元素添加到列表右边:rpush key value1, value2, ......

      获取:
  • 范围获取:lrange key start end(获取所有可以写start是0,end是-1)

    删除:
  • lpop:从左边弹出一个元素(删除最左边元素并返回)
  • rpop:从右边弹出一个元素

集合类型:

存储:sadd key value

获取:smembers key:获取set集合中所有元素

删除:srem key value:删除set集合中的某个元素

有序集合类型

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复

集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。

  • 存储:zadd key score value
  • 获取:
    • 获取所有:zrange key start end
  • 删除:zrem key value

通用命令:

  • 查询所有的键:keys * (*处其实可以添加正则表达式)
  • 获得value类型:type key
  • 删除指定key的value:del key

最新文章

  1. Express4+Mongodb超简单入门实例
  2. Hyper-V~双网卡设置
  3. jquery- pagination使用
  4. js-JavaScript高级程序设计学习笔记11
  5. Python开发【第九章】:线程、进程和协程
  6. java学习第10天
  7. 信息安全系统设计基础实验五 20135210&20135218
  8. 多个TableView的练习
  9. MySQL单表多字段模糊查询解决方法
  10. nginx 配置以及常用命令
  11. sql点滴42—mysql中的时间转换
  12. ASP .NET SignalR起步
  13. freemarker和thymeleaf的使用样例
  14. 使用Dockerfile定制ubuntu+nginx镜像
  15. flutter Row 垂直或水平放置多个widget
  16. {}动态规划}记忆化dp
  17. 20155227《网络对抗》Exp2 后门原理与实践
  18. bzoj1833: [ZJOI2010]count 数字计数 数位dp
  19. css display&&hidden
  20. 4天赚4000RMB 引流秘籍 卑鄙无耻之徒

热门文章

  1. Nginx proxy_set_header 配置注意事项
  2. Coursera 吴恩达 机器学习 学习笔记
  3. [CF1304F] Animal Observation - dp,单调队列
  4. [POI2010] GRA-The Minima Game - 贪心,dp,博弈论
  5. AI: Uninformed search
  6. spring aop使用,spring aop注解,Spring切面编程
  7. Python读取execl表格
  8. JDBC——ResultSet结果集对象
  9. 如何在Word中排出漂亮的代码,去除回车符,去除拼写检查
  10. wamp 增加mongodb拓展 安装