redis编码及数据(一)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: redis编码及数据(一)

1 redis简单入门


redis是一款高性能的NOSQL系列的非关系型数据库


1.1 NOSQL


NOSQL(NOSQL = Not Only SQL),是一项全新的数据库理念,泛指非关系型的数据库。


随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。


相较于关系型数据库:


优点:


1.成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购买使用,相比关系型数据库价格便宜。

2.查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。

3.存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。

4.扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。


缺点:


1.维护工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。

2.不提供对sql的支持,如果不支持sql这样的工业标准,将产生一定用户的学习和使用成本。

3.不提供关系型数据库对事务的处理。


1.2 下载安装


1. 官网:https://redis.io


2. 中文网:http://www.redis.net.cn/


3. 解压直接可以使用:


redis.windows.conf:配置文件


redis-cli.exe:redis的客户端


redis-server.exe:redis服务器端


1.3 基本命令


1.3.1 redis的数据结构


redis存储的是 key,value 格式的数据,其中key都是字符串,value有5种不同的数据结构


value的数据结构:


字符串类型 string

哈希类型 hash : map格式

列表类型 list : linkedlist格式。支持重复元素

集合类型 set : 不允许重复元素

有序集合类型 sortedset:不允许重复元素,且元素有顺序

1.png


1.3.2 字符串类型 string


1. 存储: set key value


127.0.0.1:6379> set username zhangsan


OK


2. 获取: get key


127.0.0.1:6379> get username


"zhangsan"


3. 删除: del key


127.0.0.1:6379> del age


(integer) 1


1.3.3 哈希类型 hash


1. 存储: hset key field value


127.0.0.1:6379> hset myhash username lisi


(integer) 1


127.0.0.1:6379> hset myhash password 123


(integer) 1


2. 获取:


hget key field: 获取指定的field对应的值


127.0.0.1:6379> hget myhash username


"lisi"


hgetall key:获取所有的field和value


127.0.0.1:6379> hgetall myhash


1) "username"


2) "lisi"


3) "password"


4) "123"


3. 删除: hdel key field


127.0.0.1:6379> hdel myhash username


(integer) 1



1.3.4 列表类型 list


可以添加一个元素到列表的头部(左边)或者尾部(右边)


1. 添加:


lpush key value: 将元素加入列表左表

rpush key value:将元素加入列表右边


127.0.0.1:6379> lpush myList a


(integer) 1


127.0.0.1:6379> lpush myList b


(integer) 2


127.0.0.1:6379> rpush myList c


(integer) 3


2. 获取:


lrange key start end :范围获取


127.0.0.1:6379> lrange myList 0 -1


1) "b"


2) "a"


3) "c"


3. 删除:


lpop key: 删除列表最左边的元素,并将元素返回

rpop key: 删除列表最右边的元素,并将元素返回


1.3.5 集合类型 set : 不允许重复元素


1. 存储:sadd key value


127.0.0.1:6379> sadd myset a


(integer) 1


127.0.0.1:6379> sadd myset a


(integer) 0


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


127.0.0.1:6379> smembers myset


1) "a"


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


127.0.0.1:6379> srem myset a


(integer) 1


1.3.6 有序集合类型 sortedset


不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。



1. 存储:zadd key score value


127.0.0.1:6379> zadd mysort 60 zhangsan


(integer) 1


127.0.0.1:6379> zadd mysort 50 lisi


(integer) 1


127.0.0.1:6379> zadd mysort 80 wangwu


(integer) 1


2. 获取:zrange key start end [withscores]


127.0.0.1:6379> zrange mysort 0 -1


1) "lisi"


2) "zhangsan"


3) "wangwu"


127.0.0.1:6379> zrange mysort 0 -1 withscores


1) "zhangsan"


2) "60"


3) "wangwu"


4) "80"


5) "lisi"


6) "500"


3. 删除:zrem key value


127.0.0.1:6379> zrem mysort lisi


(integer) 1


1.3.7 通用命令


1. keys * : 查询所有的键


2. type key : 获取键对应的value的类型


3. del key:删除指定的key value


相关实践学习
基于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
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
99 1
|
1月前
|
NoSQL Redis
Redis的数据淘汰策略有哪些 ?
Redis 提供了 8 种数据淘汰策略,分为淘汰易失数据和淘汰全库数据两大类。易失数据淘汰策略包括:volatile-lru、volatile-lfu、volatile-ttl 和 volatile-random;全库数据淘汰策略包括:allkeys-lru、allkeys-lfu 和 allkeys-random。此外,还有 no-eviction 策略,禁止驱逐数据,当内存不足时新写入操作会报错。
62 16
|
2月前
|
监控 NoSQL Java
场景题:百万数据插入Redis有哪些实现方案?
场景题:百万数据插入Redis有哪些实现方案?
44 1
场景题:百万数据插入Redis有哪些实现方案?
|
2月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
52 2
数据的存储--Redis缓存存储(二)
|
1月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
59 14
|
27天前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
38 5
|
1月前
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用哈希槽分区算法,共有16384个哈希槽,每个槽分配到不同的Redis节点上。数据操作时,通过CRC16算法对key计算并取模,确定其所属的槽和对应的节点,从而实现高效的数据存取。
49 13
|
1月前
|
存储 NoSQL Redis
Redis的数据过期策略有哪些 ?
Redis 采用两种过期键删除策略:惰性删除和定期删除。惰性删除在读取键时检查是否过期并删除,对 CPU 友好但可能积压大量过期键。定期删除则定时抽样检查并删除过期键,对内存更友好。默认每秒扫描 10 次,每次检查 20 个键,若超过 25% 过期则继续检查,单次最大执行时间 25ms。两者结合使用以平衡性能和资源占用。
45 11
|
1月前
|
监控 NoSQL 测试技术
【赵渝强老师】Redis的AOF数据持久化
Redis 是内存数据库,提供数据持久化功能,支持 RDB 和 AOF 两种方式。AOF 以日志形式记录每个写操作,支持定期重写以压缩文件。默认情况下,AOF 功能关闭,需在 `redis.conf` 中启用。通过 `info` 命令可监控 AOF 状态。AOF 重写功能可有效控制文件大小,避免性能下降。
|
1月前
|
存储 监控 NoSQL
【赵渝强老师】Redis的RDB数据持久化
Redis 是内存数据库,提供数据持久化功能以防止服务器进程退出导致数据丢失。Redis 支持 RDB 和 AOF 两种持久化方式,其中 RDB 是默认的持久化方式。RDB 通过在指定时间间隔内将内存中的数据快照写入磁盘,确保数据的安全性和恢复能力。RDB 持久化机制包括创建子进程、将数据写入临时文件并替换旧文件等步骤。优点包括适合大规模数据恢复和低数据完整性要求的场景,但也有数据完整性和一致性较低及备份时占用内存的缺点。