Redis学习一(基础入门).

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 一、前言     Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多种语言的API。     通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。

一、前言

    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多种语言的API。

    通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似 MySQL 的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

    解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。

二、特点

  • 支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用。
  • 丰富的数据类型存储:String、list、set、zset、hash。
  • 支持数据的备份,即master-slave模式的数据的备份。
  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
  • 所有的操作都是基于原子性的。

三、数据对象

  • String

--redis的String可以包含任何数据,比如jpg图片或者序列后的对象,一个key最大能存储512MB。

  • Hash

--hash 是一个String类型的field 和 value 的映射表,hash 特别适合用于存储对象。每个hash可以存储2^32-1键值对 。

  • list

--Redis 列表是简单的字符串列表,按照插入的顺序可以在列表的头部(左边)或者尾部(右边)添加元素。

  • set

--Redis的Set是String类型的无序集合。集合是通过hash表实现的,所以。添加、删除、查找的复杂度都是O(1)。

  • zset

--zset 和 set一样也是String的类型元素的集合,且不允许重复的队员,不同的是每个元素都会关联一个double类型的score。redis正是通过score来为集合中的成员进行从小到大的排序。分数(score)可以重复。
添加元素到集合,元素在集合中存在则对应更新相应的score。

四、安装

1、Window

--服务端
  1、window下载地址:https://github.com/MicrosoftArchive/redis/releases
  2、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-server.exe redis.windows.conf
--客户端
  1、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-cli.exe -h 127.0.0.1 -p 6379 -a 'mypass'
  2、set myKey abc / get myKey

2、Linux

--服务端
  1、 wget http://download.redis.io/releases/redis-2.8.17.tar.gz
  2、 tar -zxvf redis-2.8.17.tar.gz redis-2.8.17
  3、 cd redis-2.8.17
  4、 make
  5、 cd src
  6、 ./redis-server redis.conf
--客户端
  1、 cd src
  2、 ./redis-cli
  redis> set foo bar
  OK
  redis> get foo
  "bar"

五、命令

1、String

-- set key value 保存key和value。
-- get key 根据key得到value。

2、Hash

-- hmset myhash key1 val1 key2 val2 存储hash值
-- hget myhash key1 根据hash中的某个key得到value
-- hgetall myhash 得到hash中的所有值
-- HDEL key field1 [field2] 删除一个或多个哈希字段
-- HKEYS key 获取所有哈希表中的字段
-- HLEN key 获取哈希字段数

3、List

-- lpush key val 向列表左边插入元素
-- lpop key 从列表左边移出元素
-- rpush key val 向列表右边插入元素
-- rpop key 从列表右边移出元素
-- rpushx key value 为已存在的列表添加值
-- LRANGE key start stop 获取列表指定范围内的元素
-- lindex key index 通过索引获取列表中的元素

4、Set

-- sadd key value 添加元素
-- smembers key 根据key获得集合中的所有成员
-- scard key 获取集合的成员数
-- sdiff key1 key2 返回给定所有集合的差集(key2的集合相对于key1集合的差集)
-- sunion 返回给定集合的并集
-- smove source des member 把member从source集合到des集合
-- sdiffstore des key1 key2 返回给定所有集合的差集,并存储在des中
-- srandmember key count 返回集合中一个或多个随机数
-- spop key1 移除并返回集合中的一个随机元素
-- sismember key mem 判断mem元素是否存在

5、Zset

-- zadd page 0 123
-- zadd page 1 234
-- zrangebyscore page 0 10

6、通用

-- 删除key:DEL key
-- 查看所有的key:keys *
-- 序列化给定key,并返回被返回的值:DUMP key
-- 检查给定key是否存在:EXISTS key
-- 为key设置过期时间:EXPIRE key seconds
-- 为key设置过期时间(时间戳):EXPIREAT key timestamp
-- 为key设过期时间(毫秒):PEXPIRE key milliseconds
-- 查找所有符合给定模式的key:KEYS pattern
-- 移除key的过期时间,key将持久保存:persist key
-- 以毫秒为单位返回key的剩余过期时间:PTTL key
-- 返回key所存储的值得类型:TYPE key

HyperLogLog:
       -- 添加指定元素到HyperLogLog中:PFADD key element
       -- 返回给定的HyperLogLog的基数估计值:PFCOUNT key
       -- 将多个HyperLogLog 合并为一个HyperLogLog:PFMERGE destkey sourcekey

订阅命令:
      -- 订阅一个或多个符合给定模式的频道:psubscribe pattern
      -- 退订一个或多个符合给定模式的频道:punsubscribe pattern
      -- 查看订阅与发布系统状态:pubsub subcommand
      -- 将信息发布到指定的频道:publish channel message
      -- 订阅给定的一个或多个频道的信息:subscribe channel
      -- 退订给定的频道:unsubscribe channel

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
157 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
2月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
130 1
springboot的缓存和redis缓存,入门级别教程
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
347 3
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
70 8
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
42 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
34 3
|
2月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
402 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
2月前
|
NoSQL Redis
redis学习五、错误总结,redis正常运行时后会出现一些bug 总结。
本文介绍了Redis在正常运行时可能遇到的一个错误,即无法进行磁盘持久化的问题,并提供了通过设置`stop-writes-on-bgsave-error`为`no`来解决这一问题的方案。
127 0
|
4月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
4月前
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀