redis in action 笔记
来源:互联网 发布:不怎么花钱的网络手游 编辑:程序博客网 时间:2024/05/14 16:20
String,List,Set,HashSet,Zset
特别说明:
String 中存放的是一个元素,可改变或追加其内容
List Set 中存放的是一组元素,List以双向链表方式存储元素,Set是无序不可重复的元素集合
Hash 中存放的是一组key-value元素,可看成Map的集合
Sorted Set 中存放的是一组元素,不同的是每个元素都会关联一个double类型的score
1.简单类型 String
get,set,del
2.链表类型 List 有序
lpush和rpush 加入到list的头和尾
lpop和rpop 从list的头和尾出栈
lindex 根据指定位置获取item
lrange 获取某个范围内的items
eg:
lrange list-key 0 -1 取出list-key中的所有values
3.Set类型 Set 无序
sadd 添加元素
smembers 返回所有元素
sismember 查看元素是否在set中
srem 如果存在,则删除该元素
说明:
以上3种类型存放的都是元素
4.Hash 类型 HashSet 存放 key-value 组
hset 在Hash表中存放key-value
hget 在Hash表中根据指定key获取value
hgetall 返回Hash表中的所有key-value组
hdel 如果存在,根据key删除value
eg:
hset hash_set_demo1 sub-key1 value1
hset hash_set_demo1 sub-key2 value2
hget hash_set_demo1 sub-key1
hgetall hash_set_demo1
hdel hash_set_demo1 sub-key2
5.Sorted Sets类型 zset 排序的Set
zset-key zset
member1 728
member2 982
zadd 添加一个元素到zset中
zrange 从zset中获取排序之后的多个元素
zrangebyscore 获得按分数排序后的元素
zrem 如果存在,则从zset中删除元素
eg:
zadd zset-key 728 member1
zadd zset-key 982 member0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"
127.0.0.1:6379> zrange zset-key 0 -1
1) "member1"
2) "member0"
127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores
1) "member1"
2) "728"
127.0.0.1:6379> zrem zset-key member1
(integer) 1
127.0.0.1:6379> zrem zset-key member1
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member0"
2) "982"
Redis中核心:
1.5种数据类型的核心命令
String类型
存放3种类型的value
字节(数组)值
整数
浮点数
说明:
整数有自增和自减操作
incr/decr 整数自加1(自减1)
incrby/decrby key byNum 整数自增(自减)指定值byNum
incrbyfloat key amount 浮点数自增指定值amount
List类型 栈和队列类型,允许两头进行出栈和入栈
lpush和rpush 加入到list的头和尾
lpop和rpop 从list的头和尾出栈
lindex 根据指定位置获取item
lrange key start end 获取某个范围内的items
ltrim key start end 剔除list中索引不在start ~ end 之间的元素
Set类型 存放无序不可重复的元素
sadd key item 添加元素
srem key item 删除元素
sismember key item 查看item是否在set中
scard key 返回set中元素数量
smembers 返回set中所有元素
srandmember key [count] 从set中返回一个或count个随机元素
spop key 从set中删除并返回一个随机元素
smove source-key dest-key item 将item元素从source-key 移到dest-key
两个set类型的操作
sdiff key1 [key2...] 返回在key1中而不再其他key中的元素
sdiffstore
sinter key1 [key2...] 返回所有key都有的元素
sinterstore
sunion key1 [key2...] 返回多个key中的并集
sunionstore
Hash类型 存放若干key-value,看做存放map的集合
hmget hash key [key...] 从hash中根据多个key获取对应的value
hmset hash key value [key value ...] 在hash中设置多个key及其对应的value
hdel hash key [key...] 从hash中根据key删除
hlen hash key 返回hash中的map元素数量
hexists hash key 对应的key是否存在hash中
hkeys hash 获取hash中所有的key
hvals hash 获取hash中所有的value
hgetall hash 获取hash中所有的key-value键值对
hincrby hash key 如果key中存储的value是int,则value+1
Sorted Set类型 zset 存放排序的元素
zadd key-name score member [score member ...] 增加一个元素,并给元素一个对应的score
zrem key-name member [member ...] 删除一个或多个元素
zcard key-name 返回zset中元素数量
zincrby key-name incrment member
zcount key-name min max 返回score在min与max之间的元素,保护member 与其 对应的 value
zrank key-name member 返回member元素在zset中的位置
zscore key-name 返回zset中所有元素数量
zrange key-name start stop 返回score在min与max之间的元素
Ubuntu下创建redis集群
1.Ubuntu下创建redis集群
1.源码安装redis,设置redis.conf中的cluster-enabled yes ,并拷贝3份分别为redis1, redis2, redis3
# redis.conf
bind node1 # for node1
cluster-enabled yes
cluster-node-timeout 5000
2.启动3个redis节点:
./redis-server ../redis.conf --port 6379
./redis-server ../redis.conf --port 6380
./redis-server ../redis.conf --port 6381
说明:
1.调试信息最重要的一行:
No cluster configuration found, I'm a1eec932d923b55e23a5fe6a488ed7a97e27c826
这表示我们的redis服务器正在运行在cluster mode
3.连接启动的3个节点
node1 6379
node1 6380
node1 6381
说明:
它们都处于失联状态,我们现在开始配置将它们彼此连接起来,Redis有一个连接节点的工具称为redis-trib.rb.
它是一个ruby文件,需要 redis gem被安装
1.安装ruby
sudo apt-get install ruby
sudo apt-get install rubygems #如果可以执行gem命令,则不需要此步骤
2.安装redis
gem install redis
3.执行创建集群命令
./redis-trib.rb create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381
每个节点负责数据的1/3,键入 'yes'
4.连接其中的一个节点,查看redis集群状态
src/redis-cli -h node2 cluster nodes
./redis-cli -p 6379
>cluster info
5.关于Redis集群节点的管理:
参考:blog.51yip.com/nosql/1726.html
2.
- redis in action 笔记
- JUnit In Action 笔记
- Spring in action笔记
- jQuery in action 笔记
- Hadoop In action 笔记
- Spring in action 笔记
- Spring in action 笔记
- hibernate in action 笔记
- spring In Action 笔记
- spring in action 笔记
- netty in action笔记
- Junit in Action 笔记 第一章
- JUnit In Action 学习笔记
- jQuery in Action笔记1
- 《Junit in Action》学习笔记
- junit in action 学习笔记
- junit in action 学习笔记
- Hadoop in Action简单笔记
- Spring MVC是什么
- android java和js交互
- 【按键】[独立按键] - 2:双击
- [ iOS ] 微信分享图片问题解决
- JBoss4 反序列化漏洞
- redis in action 笔记
- storm的消息格式分析
- 2014山东省第五届ACM省赛 Weighted Median
- Rod DoT Hint
- Linux下查看网关方法
- AngularJS中serivce,factory,provider的区别
- Java HashMap工作原理及实现
- Facebook POP 进阶指南
- POJ 2287 Tian Ji -- The Horse Racing&&浙江科技学院第十三届程序设计竞赛1006田忌赛马后传(贪心)