redis基础

redis

该篇应该是抄袭其他地方的,链接当时没记

redis数据支持的值类型: 键都是字符串

  1. 字符串类型(掌握) 95%
  2. 散列类型(了解)— hash
  3. 列表类型(了解)— list
  4. 集合类型(了解)— set
  5. 有序集合类型(了解)–sortedset

注意命名:

key的常用的写法: 项目名_子模块_key名称


字符串类型:

设置

set key value 

获取

get key

删除

del key

自增 +1

incr key

自减 -1

decr key

扩展的命令:

getset key value:先获取再设置
incrby key count:指定增加数量
decrby key count:指定减少数量
append key value:追加
若有指定的key 则追加
若无,则设置一个

hash (存储对象的属性值)

把值看成map集合

设置

hset key subkey1 subvalue1 :设置一个键值对
hmset key subkey1 subvalue1  subkey2 subvalue2 ...:设置多个键值对

获取

hget key subkey:获取一个子键的值
hmget key subkey1 subkey2...:获取多个子键的值
hgetall key:获取所有的键值对
del user1

删除-子键

hdel key subkey1 subkey2 ...
hdel user2 age

列表类型(了解) -list

两端的插入:

lpush key member1 member2… : 往左边开始插入

lpush l1 a b c d 
d,c,b,a

rpush key member1 member2… :往右边开始插入

e f g h
rpush l1 e f g h

e,f,g,h
l1=e f g h  || l1=d c b a e f g h

lrange key startindex endindex

lrange key 0 -1 :查看所有
lrange key 0 2 

查看:(视图化工具) RedisDesktopManager

两端的删除:

lpop key :左边弹出一个

lpop l1 

rpop key :右边弹出一个

rpop l1

扩展:

llen key :获取key对应的元素数量

lrem key count member :在key中移除指定个数的成员 l2 = a b c d a b c d a b c d

    count > 0 :从左往右移除指定个数  lrem l2 2  a   l2 =b c d b c d a b c d
    count < 0 :从右往左移除指定个数    lrem l2 -2 d   l2 = b c d b c a b c 
    count = 0 :清空list中指定元素   lrem l2 0 c    l2 = b d b a b
                                lrem l2 3 c-->lrem l2 -3 c
del key : 全删

集合类型–set类型

特点:无序唯一

添加

sadd key member1 member2

移除

srem key member1 member2

查看

smembers key :查看

扩展:

sismember key member :判断一个set中是否有指定的成员
       有:1
       无:0

聚合运算 sa2=a b c d sa3=b c d e

sdiff key1 key2 :我有你没有
sunion key1 key2:我有加你有 a b c d b c d e == a b c d e
sinter key1 key2:我有你也有 b c d
sdiffstore key1 key2 key3:将key2有的key3没有的差异部分插入key1
sunionstore key1 key2 key3:将key2和key3并集部分插入key1
sinterstore key1 key2 key3:将key2和key3交集部分插入key1

sa1=a b c d 
sa2=b c d e 
sinterstore sa3 sa1 sa2

del key : 全删

sortedset类型(排行榜)

必须要有一个数值来与之关联,因为要通过这个数值来排序

添加

zadd key score1 member1 score2 member2...: 添加

获取

zscore key member :获取成员的得分

删除

zrem key member1 member2... :删除指定成员

获取元素长度

zcard key :展示元素的长度

展示所有的元素:

zrange key startindex endindex [withscores] 升序
zrevrange key 0 -1 withscores [withscores] 降序

del key : key中值全删

redis通用的操作(掌握)
  1. keys *:查询所有的key
  2. exists key:判断是否有指定的key 若有返回1,否则返回0
  3. ttl key:展示指定key的存活时间
    若返回值为 -1:永不过期
    若返回值为 -2:已过期或者不存在
    * expire key 秒数:设置这个key在缓存中的存活时间
  1. del key:删除指定key
  2. rename key 新key:重命名
  3. type key:判断一个key的类型
redis的特性–和数据库相关的命令操作

1 多数据库(掌握)

select index:切换库
move key 指定数据库: 将当前库的数据移动到指定库中
dbsize: 返回当前库中有多少个key
flushdb:清空当前数据库数据
flushall:清空当前实例下所有的数据库数据

2 消息的订阅和发布(了解

发布信息:publish 频道 消息内容
订阅单个信息: subscribe 频道1
订阅多个信息: psubscribe channel 频道1 频道2...
小A --在redis中订阅java
小B --在redis中订阅java和js

3 redis的事务(面试题)

关系型数据库和非关系型数据库的事务区别: 关系型数据库的事物:
事务执行期间,按照顺序依次执行每一条程序,直到全部执行完毕才提交
事务执行期间,如果遇到了异常,将会回滚,下面任何程序都不会执行了
非关系型数据库的事务:
事务执行期间,所有的任何程序全部处于等待不会执行,直到提交事务的时候才会按照顺序依次执行
事务执行期间,如果遇到了异常,将会被忽略继续往下执行程序
注意:工作中在程序中使用的是关系型数据库的事务

redis的持久化(了解):

持久化: 就是将数据从内存保存到磁盘
1 rdb(快照方式)
默认开启的

bin/redis.conf    查save

保存策略:

    #   after 900 sec (15 min) if at least 1 key changed
    #   after 300 sec (5 min) if at least 10 keys changed
    #   after 60 sec if at least 10000 keys changed

2 aof(配置文件命令方式)

默认不开启

若要开启,必须修改配置文件bin/redis.conf 搜appendonly

appendonly yes

保存策略:

appendfsync always 每次都写入
appendfsync everysec 每秒写入
appendfsync no 不写入
java代码操作redis数据库数据(重点)
java代码-->jdbc-->mysql
java代码-->jsdis-->redies
jedis:相当于jdbc

使用步骤:

  1. 导入jar包
  2. 创建jedis对象
new Jedis("192.168.17.136", 6379)
  1. 通过jedis操作redis数据库
  2. 释放资源

使用连接池优化:

创建数据源的配置对象

JedisPoolConfig config = new JedisPoolConfig();

配置初始化连接

config.setMaxTotal(1000);

配置空闲时期的最大连接

config.setMaxIdle(5);
.......

创建一个连接池

JedisPool pool = new JedisPool(config, "192.168.2.132",6379);

获取jedis对象

Jedis jedis = pool.getResource();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值