2.5.redis基础知识+基础指令
-
redis默认有16个数据库,默认使用的是第0个。
#可以用select 来切换使用,如选择第三个 127.0.0.1:6379> select 3 OK #查看数据库大小 127.0.0.1:6379[3]> DBSIZE (integer) 0 #清除当前数据库 flushdb #查看所用键 key * #清空全部数据库 FLUSHALL #判断某个键是否存在 EXIST +键名 #指定移除某个数据库的键 move name 1 移除数据库1的name键 #设置过期时间 EXPIRE 键名 过期时间 #查看键名还剩的存在时间 ttl 键名 #查看键的类型 type +键名
更多命令在http://www.redis.cn/commands.html里查看
-
redis是单线程的
redis是很快的,官方表示,redis 是基于内存操作,cpu不是redis性能瓶颈,redis的瓶颈即根据机器的内存和网络带宽,既然可以使用单线程来实现的,就使用单线程。(基于cpu操作才需要考虑多线程的问题,redis1是内存操作)
为什么redis单线程还这么快?
首先,redist是C语言写的 官方提供了100000+的Qps完全不比key-value的memecache差!
首先,我们要纠正一个思维误区:多线程一定比单线程慢。
多线程的速度取决于cpu的,而内存就不一样了,如果没有上下文切换,内存效率就是最高的。
3.redis常见的数据类型
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
扩展: jedis
jedis是redis的java版本的客户端实现,是一个java的api可以用java代码操作jedis在项目里实现redis
3.1String(字符串)
3.1.1String类型常用的命令
#在末尾追加,如果没有相应的键,就建立个
APPEND 键名 +字符
#查看字符串的长度
STRLEN 键名
#自增1
incr 键名
#自减1
decr 键名
#自增至
INCRBY 键名 数量
#自减至
DECRBY 键名 数量
这上面的都是值自增,不是该键的数量自增
#截取字符串
GETRANG 键名 范围1 范围2
#替换
SETRANGE 键名 范围 替换成什么
127.0.0.1:6379> set key1 sadadas
OK
127.0.0.1:6379> get key 1
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379>
127.0.0.1:6379> get key1
"sadadas"
127.0.0.1:6379> SETRANGE key1 2 ***
(integer) 7
127.0.0.1:6379> get key1
"sa***as"
***************************************
setex 键名 秒数 值 #创建键同时设置过期时间
setnx 键名 值 #设置的键不存在则创建,存在就不创建
127.0.0.1:6379> setex ke2y 300 dd
OK
127.0.0.1:6379> ttl ke2y
(integer) 295
127.0.0.1:6379> setnx mus aa
(integer) 1
127.0.0.1:6379> get mus
"aa"
127.0.0.1:6379> setnx mus aa
(integer) 0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-621aCkAJ-1632827745635)(https://static01.imgkr.com/temp/6038424c9f824cb28543db2f5736741b.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-siKGU6og-1632827745640)(https://static01.imgkr.com/temp/5b23687cf14a4a4fae98c66b30517aff.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GgagkMqW-1632827745644)(https://static01.imgkr.com/temp/cb2b5b6de3884f2fa84da2d8f5b2b4de.png)]