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]为下一次重新哈希做准备
热门文章
1
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

2
MySQL分区删除技巧与8.0版本新特性... mysql删除分区在MySQL中,删除分区操作主要使用“可替代”的命令与“ dr...

3
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

4
深度解析:MySQL查询语句执行顺序及优... mysql查询语句执行顺序当这是由于执行SQL的过程时,了解其过程很重要。 ...

5
SQL教程:使用SUBSTRING和IN... sql取特定字符的前面几位字符selectsubstr('L-0FCLDRBCT...

6
MySQL日期差异计算方法:轻松获取日期... MySQL计算时间差两日期相减得月份mysql两时间相减得月MySQL计算时间之...

7
MySQL及SQL查询获取前10条数据方... MySql查询前10条数据sql语句是从MySQL获取前1 0个数据的SQL查询...

8
MySQL启动问题排查与解决指南 Mysql为什么启动不了如果要配置MySQL,则遇到无法启动的问题,可能是由于配...

9
DbVisualizer添加MySQL数... 如何在DbVisualizer中添加本地mysql数据库由于DbVisualiz...

10
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...