redis命令

1.set key value
2.get key
3.del key
4.getset   key 相当于get key 在se key
5.incr key 将value值 自增1 (如果key 不存在则先创建key 值为0 在自增1)
6.decr key 将value值 递减1  如果(key不存在先创建key 值为0 在自减)
7.append key value (如果键值对不存在  则先创建)
8.incrby key value (将key 增加value)
9.decrby key value  (将key 减value)
只能对字符串的值为数字的使用

String 使用环境
主要用于保存 json格式字符串

redis 命令-hash
   hash 的特点:占用的空间少

flushdb

1.赋值 hset key filed value  为指定的key 设定filed/value(键值对)
hset hash1 name gqy
2.hmset 设置多个字段
3.hget  取一个字段
4.hmget 取多个字段
5.hgetall 将所有字段全部取出

6删除 hdel hash uname  删除一个字段
7del key 删除整个hash

8.对数字进行操作 hincreby  hash1 age num (num是增加的数据)

9.hexists hash1 uanme

10.hlen  返回hash 有多少字段

11.hkeys 获取所有的字段

12.hvals 获得所有value


redis-list

集合赋值
list1 [a b c d]
lpush key value
rpush key value
lpush list1 a b c d
lrange key start end

弹出元素(删出元素)
lpop key
rpop key

llen key

lrem(删除某种元素)(会为元素赋索引操作 效率低)
list3 [a b c b a c]
rpush list3 a b c b a c
删除链表中所有的a 元素
lrem list3 0 a 删除list3里面的所有的a  
list3 [b c b c]

lrem list3 2 a (正数表示从0开始删 负数表示从尾部开始删 值表示 删的个数)
lrem list3 -2 a  (从尾部删除两个a)

lset key index value
list1 [a b c d e]
将list1中的 b 替换成qqq

在下标为2元素 c前插入数据aaaa
linset list1 before b aaa

在下标为2的元素c后插入数据bbb
linsert list1 after b aaa

list1 [a b c d]
list2 [d]
#要求把list1的d元素弹出,把元素插入list2头部
rpoplpush list1 list2

循环列表
rpoplpush list1 list1 弹出在压入首部

2.redis-set

Java HashSet 无序不重复
某个元素属于set1 又属于set2
redis操作涉及两个集合的运算 效率高

sadd set1 a b c d

取值或删除 srem set1 a b

smembers  取所有的值

sismember 判断所有的值
sismember set1  a

差集运算
set1 [a b c d]
set2 [b e]

属于set1 不属于set2   acd
sdiff set1 set2 属于set1 不属于set2

属于set1 属于set2
sinter set1 set2

属于set1 或者属于set2
sunion set1 set2

集合有多少元素
scard set1

随机返回set集合中的一个成员
srandmember set1

sdiffstore  将结果存储下来
sunionstore
sinterstore

sunionstore set3 set1 set2

redis -有序set
有序 不重复
有序set集合用来做排行
zadd set1 5000 xiaoming 1000 xiaohong 500 xiaozhang

查看 zscore
zscore set1 xiaoming  

zcard set1 集合元素个数

元素删除zrem

从集合中删除 xiaoming 和xiaohong

zrem set1 xiaoming xiaohong

zrange key start end(查询指定范围)
zrange set1 0 -1

zrange set1 0 -1 withscores (带上了分数)

zrevrange set 0 -1 withscores (反转)(由大到小)

根据排名范围删除元素
zremrangebyrank key start stop (根据排名范围删除元素)

根据分数范围删除元素
zremrangebyscore key min max

zrangebyscore set1 500 1000 withscores limit 0 2 (这个范围中的前两名)

zincrby set1 200 xiaozhang(加上200)

zcount set 500 1000 (这个范围内有多少)

zrank set1 xiaoming (正序排名)

zrevrank set1 xiaoming (倒叙排名)

redis 五种数据类型
 String set hash list 有序set

通用命令:keys *
* 0个或多个任意字符
?表示任意一个字符

匹配key中包含name的所有
*name*
删除usename 和 name 两个键值对
del username name

exists key  

rename list1 listrename(修改名字)

type key 值类型(返回的字符串为 String hash set list zset)


设置key有效/过期
expire key :
expire list2 30(设置list2 生存时间为30s)
查看list2 还有多少寿命
ttl list2


消息订阅与发布
subscribe my1 订阅频道 my1

publish my1 "9999"

psubscribe my* (批量频道发布)

redis 也有数据库 但是已经设置好了 (0,1,2,.....15)

在redis 上所做的所有数据操作默认在0 号数据库上

切换数据库
select 数据库名
select 1

把某个键值对进行键值对的移植
move username 1


清空当前数据库:flushdb
redis 服务器数据的清空:flushall

redis 批量操作  事务
mysql 事务:保证数据完整性,安全
redis 事务:进行redis语句的批量化执行


multi (开启事务)
1.set username
2.get username
exec


discard(事务回滚)
multi 开启事务
set usename sj
get usename
discard


redis 并不能保证当一个错误的语句发生时,事务回滚操作例如
multi(开启事务)
set usename guo
get usename
incr usename(错误语句)
incr usename(错误语句)
get usename
exec

(结果 只是不执行错误的语句  发生错误后的批处理语句还是执行了 )
redis 不是事务 只是为了批量操作


ping

echo

select

quit 退出当前连接


dbsize 当前数据库key 数量


info 查看redis 数据


redis 持久化
内存:高效、断电后数据会消失
硬盘:读写速度慢于内存,断电数据依旧存在

持久化 : 把数据保存在硬盘上
关系型数据库MySql持久化:
  任何增删改语句,都是在硬盘上操作
  断电以后,硬盘上的数据还在      

非关系型数据库:
   默认情况下所有的增删改都是在内存中操作
   断电后数据不存在。
   断电后,redis 部分数据丢失,丢失的数据在内存中。

redis 持久化 (两种策略)
RDB: 是redis 默认持久化操作

     RDB:保存的不是全部数据而是一种状态(照快照)
     20G 几kb
     
      
    优点:1.快照的保存数据速度极快,还原数据速度极快
          2.使用于灾难备份

    缺点:小内存机制不适合
          RDB 只要符合要求就会照快照
         (随时启动,会占用一部分系统资源)
         服务器正常关闭,照快照
         key 满足一定条件,照快照
         key满足一定条件,照快照
    
   RDB何时照快照
        1.服务器正常关闭
        2.key 满足一定的条件

        save 900 1 每900秒(15分钟至少有一个key发生变化),则dump 内存快照
        save 300 10 每300s (5分钟)至少有20个key 发生变化,则dump内存快照
        save 60   10000 每60s (一分钟)至少有10000个key 发生变化,则dump内存
        快照

  AOF:使用日志功能保存数据。(默认AOF机制关闭)
       每秒同步:每秒进行一次AOF保存数据
       每修改同步:只要有key的变化,就进行AOF保存
       不同步(默认):不进行任何持久化操作

 AOF操作:
     保存导致key变化的语句


 AOF配置:
    always
    everysecond
    no






















 

















 

















 












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值