Redis(1)

CAP理论

C:强一致性

A:高可用性

P:分区容忍性

BASE

BA:基本可用

S:

E:最终一致性

Redis和Memcache的区别

1)从实现来看:

Redis:单线程

Memcache:多线程(区别:多线程中存在cpu在线程上下文切换,时间都耗费在切换上)

2)从存储方式来看:

Redis支持数据持久化和主从备份,数据更安全

Memcache,数据存于内存,没有持久化功能

3)从功能来看:

reids除了基本的k-v结构,支持多种其他复杂结构,事务等高级功能

Memcache只支持基本的k-v结构

4)从可用性看:

redis支持主从备份,数据分片,哨兵监控

Memchche没有分片功能,需要从客户端支持。

启动:

./redis-server redis.conf

redis-server /*/*/redis.conf 

客户端

redis-cli

redis-cli -p 6379

开启后

config get dir  ##获得当前路径

config set requirepass "***"  ##设置密码

访问前需得命令  auth “***” ##开启认证

客户端发送shutdown断开redis链接,关闭redis

Reis数据结构

String    ----> Map<String,String>

List        ----> Map<String,List<String>>

Set        ----> Map<String,Set<String>>

Sort_Set----> 可排序的Set

Hash     ----> Map<String,Map<String,String>>

常见命令

可使用 help命令 查找自己需要的命令

如 help keys 会显示:

KEYS pattern

  summary: Find all keys matching the given pattern

  since: 1.0.0

  group: generic

一般禁用keys,因为redis是单线程,而数据量大的时候,redis的其他命令无法使用。

EXISTS  key 是否存在

DEL  key   删除

select  num  切换库(集群时,禁用)可修改 默认为16个

hash结构命令

 hset user:1 name zs

 hset user:1 age  21

 hget user:1 age

 hgetall user:1 ##获取整个user:1的map

 hmset customer name zs id 11 age 23 ##设置多个属性

 hdel key

string命令

incrby key num ##增加num为key的值,用于int

decrby key num   

set key val

set k1 v1 k2 v2 k3 v3

get key

getrange key begin end  ##getrange age 0 1类似于between and

setrange key begin end  ##可替换字符串

exists key ##是否存在

setex key time value ##设置一个key并声明存活时间  

ttl key ##查看key的生命周期  -2代表已过期

安装好redis在虚拟机上,然后通过配置文件连接。

list命令

lpush key v1 v2 v3 ##存入 正进反出 类似于栈 从左边入栈

lrange key begin end ##范围查看

rpush key v1 v2 v3 ##存入 怎么进怎么出 从右边入栈

lpop key ##右边出栈

rpop key ##左边出栈

lindex key  index ##索引位置

lrem key num value ##删除key中的num个value

set命令

sadd key v1 v2 v3 ##无重复值,有的话会被覆盖

scard key ##集合个数

smembers key ##查看集合元素

srem key index ##删除指定索引的元素

srandmember key num ##随机从集合中出num个value

spop key ##随机出栈一个value

缓存清除策略:

1)volatile-lru :使用lru算法移除key,只对于设置了过期时间的key

2)allkeys-lru:使用lru算法移除所有key

3)volatile-random:在过期集合中随机移除key,只对于设置了过期时间的key

4)allkeys-random:移除随机的key,对于所有的key

5)volatile-ttl:移除拿写ttl值最小的key。即那些即将过期的key(timetolive)

6)noeviction:不进行移除。对于写操作,只是返回错误信息,生产不适用该策略。

Spring Data Redis的demo

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

spring:
  redis:
    host: 39.108.254.46
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    @Autowired
    private StringRedisTemplate redisTemplate;
    @Test
    public void contextLoads() {
        //操作String
        redisTemplate.opsForValue().set("master","hkf");
        String master = redisTemplate.opsForValue().get("master");
        System.out.println("master = " + master);
        //操作Hash
        BoundHashOperations<String, Object, Object> ops = redisTemplate.boundHashOps("user:2");
        ops.put("name","hkf");
        ops.put("age","23");
        System.out.println(ops.get("name"));
        System.out.println(ops.get("age"));
        Map<Object, Object> entries = ops.entries();
        System.out.println("entries = " + entries);
    }

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值