Redis命令详解与高效使用技巧
创始人
2024-12-17 10:06:14
0 次浏览
0 评论
redis命令是什么?
1.与连接操作相关的命令:
退出:关闭连接。
auth:简单的密码验证。
2.值操作命令:
exists(key):验证key是否已存储。
del(key):删除一个key。
type(key):返回值的类型。
使用说明
1.Redis和Memcache都是将数据存储在内存中,都是内存数据库。
然而,图片,您还可以使用内存缓存来存储其他内容,例如视频等。
2.Redis不仅提供简单的k/v类型数据,还提供列表、放并存储哈希等数据结构。
3.虚拟内存——当物理内存用完时,Redis可以将一些长时间未使用的值交换到磁盘。
4.过期策略——像setkey1008这样设置后,Memcache将永远不会过期。
Redis可以通过expire来设置;例如过期名称10。
redis设置的超时时间单位(redis过期时间单位)
redis设置的超时设备令牌。如果设置了过期时间,则过期后就会过期。
令牌过期后,客户端可以根据刷新令牌获取新的令牌。
Redis过期时间单位EXPIRE接口定义:EXPIREkey“秒”接口说明:设置一个key在当前时间“秒”后过期。
返回1表示设置成功,返回0表示key不存在或无法设置过期时间。
例如:EXPIREaa60PEXPIRE接口定义:PEXPIREkey“毫秒”接口说明:设置一个密钥在当前时间“毫秒”(毫秒)后过期。
返回1表示设置成功,返回0表示key不存在或无法设置过期时间。
例如:EXPIREaa60(integer)1//Redis设置的超时单位是什么超时可以指定单位是秒还是毫秒。
语法如下:SETkeyvalue[EX秒][PX毫秒][NX|XX]。
:setnamezhangsanex10十秒后过期,这里是ex秒后的单位,setnamezhangsanpx1000,1000毫秒后过期,这里px后面的单位是毫秒,表示redis数据的时间。
设置过期时间,可以使用过期时间戳进行比较,如果已经过期,则该key的数据将被删除Redis超时设置EXPIREPEXPIREEXPIRE接口定义:EXPIREkey“秒”接口说明:设置一个key在当前时间后过期时间“秒”(秒)。
返回1表示设置成功,返回0表示key不存在或无法设置过期时间。
PEXPIRE接口定义:PEXPIREkey“毫秒”接口说明:设置一个key在当前时间“毫秒”(毫秒)后过期。
返回1表示设置成功,返回0表示key不存在或无法设置过期时间。
redis连接的默认超时时间是SETEX命令在指定字符串键时可以为键设置一个过期时间,因为该命令是类型限制命令(只能用于字符串键),但是SETEX命令设置过期时间原理与EXPIRE命令设置的过期时间完全相同。
与EXPlRE命令和PEXPIRE命令一样,客户端可以使用EXPlREAT命令或PEXPlREAT命令以秒或毫秒精度指定数据库中某个键的过期时间(expirationtime)。
redis的过期时间单位使用最近的redis,使用incrBy操作,但是该API没有提供设置key过期时间的参数。
我自己就想到了一个比较low的方法。
Longlimit=redisStringService.incrBy(limitCacheKey,1);//获取数字1的线程设置key的有效期if(limit==1){redisStringService.expired(limitCacheKey,2);}即当incrBy的返回值为1时,请求得到1的线程帮忙设置key过期时间。
由于incrBy是原子的,所以必须只有一个线程获得1,因此不可能并发调用过期操作。
经过验证,这个方法是可行的,但是感觉存储系统的价值很低,它支持丰富的数据类型,例如:string、list、set、zset(有序集)、hash等。
2、Redis特点Redis使用内存作为数据存储介质,因此读写数据的效率极高,远远超过数据库。
以设置获取256字节字符串为例,读取速度最高可达11万次/秒,写入速度最高可达81千次/秒。
Redis中存储的数据是持久的,即使断电或重启也不会丢失。
-----Redi的存储分为三部分:内存存储、磁盘存储、日志文件重启后,Redis可以从磁盘重新加载数据。
(实现持久化)3.Redis应用场景,它能做什么。
它常被用在服务器上,用来存储一些需要频繁取数据的数据,更重要的是,它可以提高速度。
(以大型网站为例,比如A网站首页每天有100万人访问,有推荐新闻栏目,如果直接从数据库查询,一次会多消耗100万次)天.数据库查询上面提到了Redis支持多种数据类型,所以这完全可以用Redis来完成)使用Redis有什么好处呢?(1)速度快,因为数据存储在内存中,类似于HashMapHashMap的优点是查找和操作的时间复杂度为O(1)(2)支持丰富的数据类型,包括字符串、列表、集合、sortedset、hash(3)支持事务,操作都是原子的。
所谓原子性是指所有对数据的改变要么提交,要么过期后根本不提交,那么redis自动删除相比memcached有什么优势呢?(1)memcached中的所有值都是简单字符串。
作为替代品,redis支持更丰富的数据类型(2)redis比memcached快得多(3)redis可以持久化其数据。
1)Master最好不要做任何持久化工作,比如RDB内存快照和AOF日志文件(2)如果数据重要,一个Slave启用AOF数据备份,策略设置为每秒同步一次(3)对于主从复制连接的速度和稳定性,Master和Slave最好在同一个局域网内(4)尽量避免添加从库压力很大的主库(5)主从复制不要使用图结构,单向链表结构更稳定4.redis和mysql区别总结(1)从类型上看,mysql是关系型数据库,红色是缓存数据库(2)MySQL用于在硬盘上存储数据。
它很强大但很慢。
由于需求不同,通常与redis一起使用。
5、根据具体业务场景选择Redis和mysql,根据具体业务场景选择mysql:数据位于磁盘上。
Mysql支持sql搜索查询和统计Redis对内存要求比较高,在有限的条件下无法使用。
所有的数据都可以放到redis里面比较喜欢存储数据,redis比较喜欢快速检索数据,但是redis在查询复杂的表关系方面不如mysql,所以可以把热门数据放到redis里面,mysql存储基础数据。
Redis设置过期时间。
使用EXPIRE命令或PEXPIforEarlyMorningRE命令,客户端可以设置数据库中特定键的生存时间(TimeToLive,TTL),精度为秒或毫秒。
在指定的秒数或毫秒数后,服务器会自动删除存活时间为0的key。
:redis>SETkeyvalueOKredis>EXPWORKREkey5(integer)1redis>GETkey//5秒内"value"redis>GETkey//之后5秒(nil)redis为哈希中的值设置超时。
哈希就是其中之一。
在Hash扩容时采用渐进式rehash方法。
rehash原理字典包含一个ht数组,数据结构为dicttht,通常字典只使用ht[0]来存储数据,rehash时使用ht[1]。
随着操作的不断进行,哈希表中的元素会逐渐增加或减少。
为了将哈希表的负载因子维持在合理的范围内,程序必须扩展和收缩哈希表的大小。
步骤如下:为ht[1]哈希表分配空间。
如果是扩容操作,ht[1]的大小就是2的n次方首先大于或等于ht[0].used*2。
如果是收缩操作,则ht[的大小。
1]是第一个大于或等于ht[0]的。
使用提升到2的n次方会将ht[0]中存储的所有键值对重新散列到ht[1]:rehash是指计算键的散列值和索引值,然后将键值对放置将ht[0]中的所有键值对迁移到ht[1]后,在ht[1]对应的位置,删除ht[0],将ht[1]设置为ht[0],并创建一个新的空哈希表ht[1]为下一次重新哈希做准备
相关文章
MySQL去重查询技巧:使用DISTIN...
2024-12-20 15:34:04MySQL服务启动故障排查与解决步骤
2024-12-23 13:50:52MySQL字符串类型深度解析:CHAR、...
2024-12-14 21:23:34深入解析MySQL:开源关系数据库的强大...
2024-12-17 01:41:42数据库字段全用字符串存储:转换技巧与注意...
2024-12-14 18:18:43MySQL新手必学:创建表与插入数据教程
2024-12-22 16:00:23C语言函数调用技巧:子函数调用与逆矩阵计...
2024-12-17 01:14:58MySQL高效查询:轻松应对千万级数据挑...
2024-12-18 00:15:20Oracle与MySQL数据库详解:实例...
2024-12-14 22:03:03Windows 10 MySQL服务启动...
2024-12-15 10:21:53最新文章
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
23
2024-12
热门文章
1
SQL2000数据库备份压缩技巧:优化空...
怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...
2
高效掌握:CMD命令轻松启动、关闭及登录...
如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...
3
SQL字符串处理技巧:单引号使用与转义标...
SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...
4
Windows环境下Redis安装指南与...
redis安装windowsredis基本简介与安装安装Redis首先需要获取安...
5
深度解析:Redis性能优势与局限性,助...
redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...
6
深入解析:MySQL数据库的特性与应用
mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...
7
掌握MySQL常用命令:高效管理数据库的...
MySQL数据库常用命令(新建/删除/查询&am...
8
MySQL数据库备份与增量备份策略详解
mysql数据库备份方法有什么?MySQL数据库自动备份解决方案在使用MySQL...
9
Python中==与=的区别:深度解析与...
python中==和=的区别Python中的对象包含三个元素:id、type和v...
10
MySQL数据库安装路径解析与配置文件备...
mysql数据库在哪个路径下?默认的MySQL数据库存储在...\MySQL\M...