redis chapter2(string)

五大类型 

三大的特殊类型

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理(发布订阅的)。它支持字符串哈希表列表集合有序集合和范围查询:如位图hyperloglogs等数据类型。内置 主从复制、Lua脚本(Lua scripting)、LRU(驱动)收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel(哨兵)提供高可用,通过Redis Cluster提供自动分区

Redis-Key

keys *

set name zhanghonggang

EXISTS  name  判断当前key是否存在

EXPIRE name 10 // 设置有效期10s

ttl name   // 查询其有效期  到期即被删除

type name  //string

type age // string  查看key的类型

127.0.0.1:6379> set key name
OK
127.0.0.1:6379> keys *
1) "key"
2) "age"
127.0.0.1:6379> age

插入 APPEND STRLEN EXISTS *******************************
(error) ERR unknown command 'age'
127.0.0.1:6379> key(age)
(error) ERR unknown command 'key(age)
127.0.0.1:6379> EXISTS key1  // 是否存在
(integer) 0
127.0.0.1:6379> EXISTS key
(integer) 1
127.0.0.1:6379> APPEND key "is xiaoan  // 插入valus 的值
(integer) 14
127.0.0.1:6379> get key
"nameis xiaoang"
127.0.0.1:6379> STRLEN key  // 查看长度
(integer) 14
127.0.0.1:6379> APPEND key " and  zhaangxiaoyu”
(integer) 31
127.0.0.1:6379> get key
"nameis xiaoang and  zhangxiaoyu"

增减 decr  incr  DECRBY INCRBY **********************************************

127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get  views
"0"
127.0.0.1:6379> incr views
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> decr views
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> decr views
(integer) -1
127.0.0.1:6379> get views
"-1"
127.0.0.1:6379> INCRBY views 10
(integer) 9
127.0.0.1:6379> INCRBY views 10
(integer) 19
127.0.0.1:6379> DECRBY views 5
(integer) 14
127.0.0.1:6379> DECRBY views 5

range  范围   GETRAGNE  截取*********************************************************

127.0.0.1:6379> keys *
1) "views"
2) "key"
3) "age"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key1 "zhanghongga
OK
127.0.0.1:6379> get key1
"zhanghonggang"
127.0.0.1:6379> GETRANGE key1 0 3
"zhan"
127.0.0.1:6379> GETRANGE key1 0 -1
"zhanghonggang"
127.0.0.1:6379> GETRANGE key1 0 -1

替换 SETRANGE ******************************************

127.0.0.1:6379> set key2 zhangyue
OK
127.0.0.1:6379> get key2
"zhangyue"
127.0.0.1:6379> SETRANGE key2 1 love
(integer) 8
127.0.0.1:6379> get key2
"zloveyue"
127.0.0.1:6379> SETRANGE key2 1 Ilove
(integer) 8
127.0.0.1:6379> SETRANGE key2 1 Ilove
(integer) 8
127.0.0.1:6379> get key2
"zIloveue"
127.0.0.1:6379> SETRANGE key2 00 Ilove
(integer) 8
127.0.0.1:6379> SETRANGE key2 00 Ilove
(integer) 8
127.0.0.1:6379> get key2
"Iloveeue"
127.0.0.1:6379> SETRANGE key2 5 y
(integer) 8
127.0.0.1:6379> get key2
"Iloveyue"
127.0.0.1:6379> SETRANGE key2 00 Ilove

**************************************************************************

setex(set with expire) 设置过期时间

setnx (set if not exist) 不存在设置

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> setex key3 30 "hello" // 设置key3 = hello 30s后过期
OK
127.0.0.1:6379> ttl key3
(integer) 21
127.0.0.1:6379> get key3
"hello"
127.0.0.1:6379> setnx mykey "redis" // 如果mykey 不存在  则创建mykey
(integer) 1
127.0.0.1:6379> keys *
1) "mykey"
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> setnx mykey "Mongodb" // 若果mykes 存在 则创建失败
(integer) 0
127.0.0.1:6379> get mykey
"redis"
**************************************************************************

mset 

mget

127.0.0.1:6379> msetnx k1 v1 k4 v4
(integer) 0
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> git k4
(error) ERR unknown command 'git'
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 24

key 的设计: user :{id}:{filed}  (对象 id 属性)

set article:10000:views    (当前第一万篇文字的浏览量)

*********

127.0.0.1:6379> getset db redis  // 若不存在 则返回nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db Mongodb  // 若存在  则获取原来的值  并设置新值 
"redis"
127.0.0.1:6379> get db
"Mongodb"
********************************************

string 场景: value 可以是 string  数字 

计数器

统计多单位的数量 uid(当前用户 的id)  eg:  uid :9854545:follow 0 incr  // 若有人关注  就自增

粉丝数 

对象缓存存储 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值