redis 学习(一)string list set zset

为什么要用NoSql

mysql 瓶颈,无法支持大访问量,

关系型数据库 Mysql ,sqlservice 等

非关型数据库 memcahe ,redis mongdb等 

 

NoSql 特点 聚合模型

1、KV键值对

2、Bson类似json

3、列族

4、图形 :图谱(复杂的朋友关系)mysql 关系型数据库力不从心

NoSql 四大分类

    

     

    

 

                           

                          

                          

 

redis 安装略过 如果是本地redis 可以不是用 -h 127.0.0.1 -p 6379

set name  如果有值 会被覆盖 

##获取所有的key值
keys *

##获取指定的key值
key name

## 如果k1存在将被覆盖
set k1




##选择库 0-15 一共16个库
select 1

##删除指定的库
flushdb 

##删除所有的库
flushall

## 把键值对从库移动到两一个库
move k3 2  #把k3 从当前库移到库2

##秒钟,为给定的key设置过期时间
expire key 

##查看还有多少秒过期,-1表示永不过期,-2表示已过期
ttl key 
exp: ttl k3

##查看key的类型
type k3 

##################################################

Redis 字符串 String 
set 
get 
del 

#append 追加
get k1
"ab"

append k1 12345
"ab12345"

strlen k1
(integer) 7

#累加
set k2 2

incr k2
(integer) 3
incr k3
(integer) 4

#累减
decr k2
(integer)3

decr k3
(integer)2

#多路累加
incrby k3 2
(integer)4

#多路递减
decrby 1
(integer)3

#获取指定范围内的值 类似mysql between
假设 k4

# mset 添加多个值 注意 当k1 存在的时候 添加会被覆盖
mset k1 v1 k2 v2 k3 v3

# mget 获取多个值
mget k1 k2 k3

#msetnx   添加多个值 如果不存在添加 该函数和setnx判断存在,不存在再添加,假设
# msetnx k1 v1 k2 v2 k3 v3 如果k1存在  那么全部不成功

 

#获取指定范围的k1的值 类似mysql里的between , 0 -1 全部  
getrange k1 0 -1

#设置k1的值 从第N位开始 添加val 从第2位开始加入xxx
setrange k1 2 xxx 

 

#setex 设置过期时间 到期释放
setex key seconds value

#setnx (set if not exist) 如果不存在就添加

List

# lpush list1 1 2 3 4 5  先进后出
# lrange list1 0 -1

# rpush list1 1 2 3 4 5  先进先出
# lrange list1 0 -1

# lpop 出栈  lpush 压入的 出栈也是前进后出原则 rpush压入的 是 先进先出原则

# rpop 出栈  与lpop刚好相反

# lindex 键名 下标

#lrem list3 删除数量 删除的值
#lrem key count value
 lrem list3 2 6

如果截取的值不存在则返回0

如果截取的数量大于实际存在的数量则按实际数量返回

## ltrim 键名 开始下标 结束下标 
ltrim list4 2 4

#rpoplpush 源键名 目的键名 把第一个list1 的rpop(先进先出原则) 压入list2(先进后出原则)
rpoplpush list01 list02

##lset list1 被替换下标 值
lset list1 2 xxx

## linsert 键名 before/alter 值1 值2 截取指定范围的值后再赋值给key
linsert list1 before xxx wokao

## set 集合 过滤重复的值
sadd set1 1 1 1 2 2 2 3 3 3

## smembers key  获取集合的值 

## 判断指定的值是否存在 存在返回1 不存在返回0
## sismember key 值 

## 获取集合里有多少个元素
scard key

#srem 删除元素中的值
srem set1 2

 

## srandmember 键值 数量  随机从键值里出N个值
srandmember set1 3

## spop key值  数量 随机弹出键值
## spop set2 2

## smove key1 key2 key1的值  //把key1的值给了key2
smove  set1 set2 3

反过来 也是成立的

如果不存在 返回0

## sdiff key1 key2 差集  key1有 key2没有 的值筛选出来

## sinter key1 key2 交集

 

##  sunion set1 set2  并集

Hash KV模式不变,但是V是一个键值对

## hset key k v 

获取hget 

批量操作hset 

##批量添加有两种
## 1、 hset user1 id 1 name zhansan age 23
(integer) 3

## 2、 hmset user2 id 1 name lisi age 22
OK

hgetall 获取所有的hash值

#hdel key 键值名
hdel user1 name 

## hlen key 获取hash长度

## hexists 判断值 的键值对的键是否存在 

## hkeys /hvals 获取所有键值对的键或值
hkeys user1
hvals user1

## 自增
## hincrby 键  值  数值
## hincrby key val num

## 增加浮点数
## hincrbyfloat key  键值  float
## hincrbyfloat user1 score 9.54

## hsetnx 不存在就添加 存在就不添加

有序集合 Zset (sorted set) 可以有重复值

## 批量添加键值到有序集合里 
## zadd  zscore  20 z1  80 z2 90 z3 50 z4 40 z5 50 z6 80 z7 100 z9
## 返回所有的有序集合键对 默认scores从小到大排序
## zrange zscore 0 -1 
## 返回所有的键值对集合  默认scores从小到大排序
## zrange zscore 0 -1 withscores 

## zrangebyscore key 最小值(min) 最大值(max)
 zrangebyscore zscore 30 90

## 删除key的键值
## zrem key 键值
zrem zscore z5

## zcount key min max 统计score值在min 和max 之间的总数 

 

## zcard key 获取有序集合总数

## zrank key number 获取键值对下标

## zscore key member 获取key的 键值member对应的值

## zrevrange key min max 从小到大( 按照 score d的从大到小来排序)获取键值对

## zrevrangebyscore key max mix  从大到小(scroe值从大到小)排序 截取对应的值

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值