redis

初始知识安装Linux下安装Redis_浅末年华的博客-CSDN博客_linux redis安装启用和停止
摘要由CSDN通过智能技术生成

目录

相关知识

常用五大数据类型数据类型

常用key命令

redis字符串

简介

常用命令

底层数据结构

redis列表(List)

简介

常用命令

数据结构

 redis集合(set)简介

常用命令

redis哈希(hash)

         简介

 常用命令

redis有序集合zset

简介

常用命令

数据结构

Bitmaps

简介

 常用命令

Geospatial

简介

基本操作 

配置文件详解

 redis的订阅和发布  

jedis操作redis6

redis事务

乐观锁和悲观锁

 redis——事务——秒杀案例

 redis的持久化操作

主从复制(一主多从)

概述

搭建一主多从

 常见问题

哨兵模式 

  集群


相关知识

redis安装

Linux下安装Redis_浅末年华的博客-CSDN博客_linux redis安装

redis启用和停止

Redis的启动、使用和停止_小蜗牛的博客-CSDN博客_redis停止命令

1.redis是单线程+多路复用

2.redis默认16个数据库

可以用select选择数据库,统一密码管理,所有的库同样的密码

常用五大数据类型数据类型

常用key命令

key *:查看当前库的所有key

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set key1 lizude
OK
127.0.0.1:6379> set key2 wufei
OK
127.0.0.1:6379> set key3 liu
OK
127.0.0.1:6379> keys *
1) "key2"
2) "key3"
3) "key1"
127.0.0.1:6379> 

exist key:判断某个key是否存在

127.0.0.1:6379> exists key1
(integer) 1
127.0.0.1:6379> 

type key:判断你的key是什么类型

del key:删除指定key数据

unlink key:根据value选择非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除在后续的异步操作

expire key 10:给key设置过期时间,10相当于10秒

ttl key查看还有多少秒过期,-1永不过期,-2已过期

select     命令切换数据库

dbsize      查看当前数据库的key的数量

flushdb    清空当前库

flushall    杀死全部库

redis字符串

简介

string是redis最基本的数据类型,一个key,一个value。

String类型是二进制安全的,意味着redis String可以包含任何数据。比如jpg图片或者序列化对象

String类型是redis最基本数据类型,value值最多是512M

常用命令

set <key> <value>:添加键值对,如果已经key已经存在,再次set就会覆盖之前的value

get <key> :查询对应键值

append <key> <value>添加value在key值所对应的value值的后面添加value

strlen<key> 获得的长度

setnx <key> <value>只有key不存在时候,设置key值。存在将不设置

incr<key> 将key中存储的数字增加1,只能对数字进行操作,如果为空,新增值为1

decr<key>将key中存储的数字减1,只能对数字进行操作,如果为空,新增为-1

incrby/decrby <key> <步长>将key中存储的数字增减。自定义步长,key

原子性

所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直到运行结束,中间不会有任何线程打断。

redis的原子性得益于他的原子性

mset <key> <value> <key2> <value2>     :设置一个或者多个键值对

mget <key> <key1> <key2> <key3>         : 同时获得一个或者多个value

msetnx <key> <value> <key2> <value2> 同时设置一个或者多个key-value,但是只有所有的key都是不存在的时候才能成功,否则将失败,有一个存在将不能成功

getrange <key> <数字(起始位置)>  <数字(结束位置)>:获得key对应的value的指定位置的字符。

127.0.0.1:6379> getrange k1 0 1
"v1"

setex设置键值的时候设置过期时间  setex  <key> <time> <value>

127.0.0.1:6379> setex k22 20 value2
OK
127.0.0.1:6379> k22 ttl
(error) ERR unknown command `k22`, with args beginning with: `ttl`, 
127.0.0.1:6379> ttl k22
(integer) 7
127.0.0.1:6379> ttl k22
(integer) 4
127.0.0.1:6379> ttl k22
(integer) 2
127.0.0.1:6379> ttl k22
(integer) 0
127.0.0.1:6379> ttl k22
(integer) -2
127.0.0.1:6379> 

getset <key> <value>以旧换新,设置新值的同时获得旧值 

底层数据结构

String数据结构类型为简单动态字符串(SDS)。是可以修改的字符串,类似于java中的arrayList,采取预分配余空间的方式来减少内存的频繁分配。

 一般来说内部当前字符串的实际分配内存空间capatity,要比实际字符串长度len要长。当字符串的长度小于1M,扩容加倍现有空间。当字符串的大小大于1M,扩容时候一次只会扩容1M空间,需要注意字符串的value最大空间为512M。

redis列表(List)

简介

单键多值

对两端操作性能很高,但是对中间节点操作的性能不高。value值以链表的形式存放

常用命令

lpush/rpush <key> <value1><value2><value3> 从左边或者右边插入一个或者多个值,

左边是相当于链表头插法,右边相当于链表的尾插法

lpop/rpop <key>从左边/右边吐出一个值。value值在键在,value值光键亡

lrange <key> <起始位置> <结束位置> 索引value获得元素

lrange <key> 0 -1代表所有的value

127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> get k1
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> lrang k1 0 -1
(error) ERR unknown command `lrang`, with args beginning with: `k1`, `0`, `-1`, 
127.0.0.1:6379> lrange k1 0 -1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379> rpush k2 v1 v2 v3
(integer) 3
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v2"
3) "v3"

rpoplpush <key1> <key2> 从右边key1弹出一个value,插入key2到左边 

127.0.0.1:6379> rpush k1 1 2 3
(integer) 3
127.0.0.1:6379> rpush k2 1 2 3
(integer) 3
127.0.0.1:6379> lpoplpush k1 k2
(error) ERR unknown command `lpoplpush`, with args beginning with: `k1`, `k2`, 
127.0.0.1:6379> rpoplpush k1 k2
"3"
127.0.0.1:6379> lrange k1 0 -1
1) "1"
2) "2"
127.0.0.1:6379> lrange k2 0 -1
1) "3"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> 

lindex <key> <index>按照索引下标获得元素,

127.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值