redis 入门

redis ,是一个关系型数据库,是一个开源的,内存数据库,因为他的数据操作是基于内存得所以他的效率非常高,他支持100000+ 的QPS.,因为他是用c语言写的,它包含多种数据类型,

1,比较常见的string 

2, hashes 散列

3,list  列表

4. set  集合

5 sorted sets 有序集合 

redis 是一个单线程的,能用单线程就用单线程,如果用多线程需要多个cpu 来回切换,这并不比单线程效率高

redis 的核心是将所有数据放到内存中,对于内存系统来说,如果没有上下文切换效率是最高的,多次读写都在一个cpu 上,在内存情况下,这个就是最佳方案

 QPS每秒查询率(Query Per Second) 
  每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS(吞吐量),只是应用于特定场景的吞吐量。

select 3  选择3号数据库,切换数据库

move name 3 移动当前key 到 3号库中

reids 常用命令 :

key 相关的:

keys * 查看所有key

expire name 10 设置过期时间 10s

ttl name  查看还有多久到期

type name 查看当前key 的类型

1,string (字符串)

我只会string 这类型,这是不行的大哥,快去学起来!

set age 1 

get age 

append age "hello"  追加后边, (注意如果当前key 不存在就相当于 set key )

STRLEN  key1       查看key 对应的值的长度

incr key1    计数加        incrby key 10 设置增长量10,,加10

decr key1  减少一         decrby  key1  10 设置减少量10, 减少10

字符串范围

getrange key1 0 3    ---   java substring( 0,3)  截取字符串  【0,3】

替换

setrange key1 2 xx   -----  java 中replace()  替换指定位置开始的字符串

setex   (set with  expire)设置过期时间     setex key1 30 "hello"  设置key3 值未hello,30s 后过期

setnx   (set if not exist)  不存在再设置,在分布式锁常用

mset k1 v1 k2 v2 k3 v3 同属设置多个值

mget k1 k2 k3 同时获取多个值

msetnx k1 v1 k4 v4  他是一个原子性操作,要么一起成功,要么一起失败

对象

set uesr:1 {name :zhagnsang, age:3} 设置一个对象,值未json 字符串保存对象

mset user:1:name zhangsan user:1:age 2

mget user:1:name user:1:age

getset  先get 再set 

getset db redis 如果不存再值,则返回nil

get db 

"redis"

getset db mongodb  如果存在值,获取原来的值,并设置新的值

”redis“

get db 

"mongodb"

LIST 

lpush list one 

lpush list two 

lpush list three 

lrange list 0 -1   获取所有值

1) three

2) two

3) one 

lrange 0 1 

three

two

Rpush  list right  将一个值放到尾部 (从右边(尾部)插入值)

Lrange list 0 -1 

LPop  

Rpop

Lpop list  移除列表的第一个元素

three

Rpop list 移除list 最后一个元素

ringht

Lrange list 0 -1

two 

one

Lindex list 1  # 通过下标list 

"one"

lindex list 0

"two"

Llen  list # 获取列表长度

Lrem list 1 one  

Lrem list  2 three (假如有两个重复的值 three )  同时删除 两个three

rpush  mylist "h1"

rpush  mylist "h2"

rpush  mylist "h3"

rpush  mylist "h4"

ltrim mylist 1 2  通过下下表截取掉指定的长度

lrange mylist 0 -1

h1

h2 

组合命令,又上边命令组合而成,可以快速实现某些操作

rpoplpush  # 移除列表最后一个元素,将他移动到新的列表中

rpoplpush mylist myotherlist 

lrange mylist 0 -1

h

h1 

lrange myotherlist 0 -1

h2

Lset  # 将列表中指定下标的值替换,

exists list # 判断这个列表是否存在

lset list 0 item  # 如果不存在列表我们替换就会报错

Linsert # 将列表中具体的某个值插入到某个元素的前面或者后边

Linsert mylist before "world" "other" 在world 之前增加other 值

Linert mylist after world new 在 world 后边增加值new

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值